Closed Anders429 closed 2 years ago
A couple of things that need to be done before merging this:
.msd
(64th and 24th).title
and subtitle
using the same delimiter originally used to split.Merging #41 (7cb7c5d) into master (77af687) will increase coverage by
2.52%
. The diff coverage is99.55%
.
@@ Coverage Diff @@
## master #41 +/- ##
==========================================
+ Coverage 95.89% 98.42% +2.52%
==========================================
Files 3 4 +1
Lines 195 3868 +3673
==========================================
+ Hits 187 3807 +3620
- Misses 8 61 +53
Impacted Files | Coverage Δ | |
---|---|---|
src/lib.rs | 100.00% <ø> (ø) |
|
src/song/msd.rs | 98.27% <ø> (ø) |
|
src/song/mod.rs | 96.29% <95.45%> (+96.29%) |
:arrow_up: |
src/song/util.rs | 99.76% <99.76%> (ø) |
Help us with your feedback. Take ten seconds to tell us how you rate us.
This PR will also close #38, since msd
has location-aware error messages.
This PR also defines the crate's MSRV, fixing #11.
While there still are a few rough edges (hemiolas in generic doubles to msd doubles conversion, for example), I'd say this PR is ready to go. As said before, this basically restructures the entire crate (although there luckily wasn't much to be lost prior to this, as most existing work was moved into the msd
crate in a much more generic and scalable way), and I think it's for the better. Looking forward to moving on to .dwi
files next.
This PR switches over to the
msd
library for reading the MSD-style tags, and provides an entire implementation of reading and writing.msd
simfiles. This resolves #15 and #34, and checks off a few boxes on #5.This is a significant rewrite of the library, but I think it is worth it. The
msd
library is a much better solution than trying to implement a parser here in this library. Instead of parsing it ourselves,serde
andmsd
can parse it all for us, with the added benefits ofserde
's support for standard types.The overall strategy in this PR is to define a central
Song
struct (as before), and a separateSong
struct for each file format.From
implementations are also defined, making it straightforward to convert between the centralSong
and the file format-specificSong
.Serialization
andDeserialization
implementations are also provided for the file formatSong
, allowing for easy writing and reading from the files directly. Ultimately, this should make for some easy transcoding between simfiles, which is one of the main goals of the library.