From d458a84d4dbe4cb7cf67e0d579eeebb3dd0502b4 Mon Sep 17 00:00:00 2001 From: alterwain Date: Sat, 1 Feb 2025 03:44:11 +0300 Subject: [PATCH] Changes to be committed: modified: src/main.rs --- src/main.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/main.rs b/src/main.rs index 75c2bb3..502794c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,6 +3,36 @@ use env_logger::Builder; use log::{error, info, LevelFilter}; use rkyv::{deserialize, rancor::Error, Archive, Deserialize, Serialize}; +enum ChunkType { + Database, + DataSet, + AlbumList, + AlbumItem, + TrackList, + TrackItem, + StringTypes, + PlaylistList, + Playlist, + Unknown +} + +impl From<[u8; 4]> for ChunkType { + fn from(value: [u8; 4]) -> Self { + match value { + [109, 104, 98, 100] => ChunkType::Database, + [109, 104, 115, 100] => ChunkType::DataSet, + [109, 104, 105, 97] => ChunkType::AlbumList, + [109, 104, 108, 97] => ChunkType::AlbumItem, + [109, 104, 108, 116] => ChunkType::TrackList, + [109, 104, 105, 116] => ChunkType::TrackItem, + [109, 104, 111, 100] => ChunkType::StringTypes, + [0x6D, 0x68, 0x6C, 0x70] => ChunkType::PlaylistList, + [0x6D, 0x68, 0x79, 0x70] => ChunkType::Playlist, + _ => ChunkType::Unknown + } + } +} + #[derive(Archive, Deserialize, Serialize, Debug, PartialEq)] #[rkyv(compare(PartialEq), derive(Debug))] struct ChunkHeader {