summaryrefslogtreecommitdiff
path: root/src/metadata.rs
diff options
context:
space:
mode:
authorBen Bridle <ben@derelict.engineering>2024-12-16 13:45:22 +1300
committerBen Bridle <ben@derelict.engineering>2024-12-16 13:45:47 +1300
commit87f8faba2fde2ac4cfa79dbb1f30907b6e48653c (patch)
tree6dfcb01418af812383ffe45d15f2f4ca6c9adb92 /src/metadata.rs
parent07fb107e2d0527545bcdbb47ace80551702a71b1 (diff)
downloadbedrock-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.rs19
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>,
-}