From ca1443e93faf95d93ed655fca92a9d19deb53805 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 21 Jun 2025 16:32:23 -0400 Subject: [PATCH] Added function to set metadata value --- src/meta.rs | 17 +++++++++++++++++ src/types.rs | 21 +++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/meta.rs b/src/meta.rs index ef1f490..eea0f5e 100644 --- a/src/meta.rs +++ b/src/meta.rs @@ -244,6 +244,23 @@ pub mod metadata { Err(err) => Err(err), } } + + pub fn parse_value(value: types::MetadataType) -> String { + match value { + types::MetadataType::String(val) => { + val + } + types::MetadataType::Int(val) => { + val.to_string() + } + } + } + + pub fn set_meta_value(t: types::Type, filepath: &String, value: types::MetadataType) -> Result { + let parsed_val = parse_value(value); + + set_meta(t, filepath, &parsed_val) + } } #[cfg(test)] diff --git a/src/types.rs b/src/types.rs index d5387a0..c690dcd 100644 --- a/src/types.rs +++ b/src/types.rs @@ -12,6 +12,27 @@ pub enum Type { DiscCount, } +#[derive(Debug)] +pub enum MetadataType { + String(String), + Int(i32) +} + +impl MetadataType { + pub fn from_str(s: &str) -> Self { + MetadataType::String(s.to_string()) + } + + pub fn from_string(s: String) -> Self { + MetadataType::String(s) + } + + pub fn from_int(i: i32) -> Self { + MetadataType::Int(i) + } +} + + pub mod access { pub fn get_type(t: super::Type) -> Result {