diff options
author | Ben Bridle <ben@derelict.engineering> | 2024-12-16 13:45:22 +1300 |
---|---|---|
committer | Ben Bridle <ben@derelict.engineering> | 2024-12-16 13:45:47 +1300 |
commit | 87f8faba2fde2ac4cfa79dbb1f30907b6e48653c (patch) | |
tree | 6dfcb01418af812383ffe45d15f2f4ca6c9adb92 /src/metadata.rs | |
parent | 07fb107e2d0527545bcdbb47ace80551702a71b1 (diff) | |
download | bedrock-pc-87f8faba2fde2ac4cfa79dbb1f30907b6e48653c.zip |
Update metadata and parser to match current specification
The metadata specification has changed to use '/' as the separator
between the program name and program version in the name string, and
each author line is now no longer followed by the year in which the
author last contributed to the program.
Diffstat (limited to 'src/metadata.rs')
-rw-r--r-- | src/metadata.rs | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/src/metadata.rs b/src/metadata.rs index 7130517..7692434 100644 --- a/src/metadata.rs +++ b/src/metadata.rs @@ -28,12 +28,9 @@ impl<'a> MetadataParser<'a> { return None; } - let (name, version) = split_string(self.string(self.double(0x10))); + let (name, version) = split_name_version(self.string(self.double(0x10))); let authors = self.string(self.double(0x12)).map(|string| { - string.lines().map(|line| { - let (name, year) = split_string(Some(line.to_string())); - Author { name: name.unwrap(), year } - }).collect() + string.lines().map(|line| line.to_string()).collect() }); Some( ProgramMetadata { @@ -89,9 +86,9 @@ impl<'a> MetadataParser<'a> { } } -fn split_string(string: Option<String>) -> (Option<String>, Option<String>) { +fn split_name_version(string: Option<String>) -> (Option<String>, Option<String>) { if let Some(string) = string { - match string.split_once(", ") { + match string.split_once('/') { Some((left, right)) => (Some(left.to_string()), Some(right.to_string())), None => (Some(string), None), } @@ -120,7 +117,7 @@ pub struct ProgramMetadata { pub required_devices: u16, pub name: Option<String>, pub version: Option<String>, - pub authors: Option<Vec<Author>>, + pub authors: Option<Vec<String>>, pub description: Option<String>, pub path_buffer: Option<usize>, pub small_icon: Option<[u8; 72]>, @@ -128,9 +125,3 @@ pub struct ProgramMetadata { pub bg_colour: Option<Colour>, pub fg_colour: Option<Colour>, } - - -pub struct Author { - pub name: String, - pub year: Option<String>, -} |