From bb7aa0604d1928ec435e97f6e58521597bc61c3b Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 6 Jan 2026 02:53:21 +0100 Subject: impl value for object --- common/src/lib.rs | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) (limited to 'common/src/lib.rs') diff --git a/common/src/lib.rs b/common/src/lib.rs index 769cfe2..209aeef 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -53,33 +53,35 @@ pub enum NodeIDOrSlug { Slug(String), } +use jellyobject::{Object, Tag, TypedTag}; +use std::marker::PhantomData; macro_rules! keys { - ($($id:ident = $tag:literal $name:literal;)*) => { - $(const $id: Tag = Tag($tag);)* + ($($id:ident: $type:ty = $tag:literal $name:literal;)*) => { + $(pub const $id: TypedTag<$type> = TypedTag(Tag($tag), PhantomData);)* }; } keys! { - N_KIND = 1 "kind"; - N_TITLE = 2 "title"; - N_PARENT = 3 "parent"; - N_TAGLINE = 4 "tagline"; - N_DESCRIPTION = 5 "description"; - N_RELEASEDATE = 6 "releasedate"; - N_INDEX = 7 "index"; - N_SEASON_INDEX = 8 "season_index"; - N_MEDIA = 9 "media"; - N_TAG = 10 "tag"; - N_RATINGS = 11 "ratings"; - N_PICTURES = 12 "pictures"; - N_IDENTIFIERS = 13 "identifiers"; - N_VISIBILITY = 14 "visibility"; - N_STORAGE_SIZE = 15 "storage_size"; + N_KIND: Tag = 1 "kind"; + N_TITLE: &str = 2 "title"; + N_PARENT: u64 = 3 "parent"; + N_TAGLINE: &str = 4 "tagline"; + N_DESCRIPTION: &str = 5 "description"; + N_RELEASEDATE: u64 = 6 "releasedate"; + N_INDEX: u64 = 7 "index"; + N_SEASON_INDEX: u64 = 8 "season_index"; + N_MEDIA: Object = 9 "media"; + N_TAG: &str = 10 "tag"; + N_RATINGS: Object = 11 "ratings"; + N_PICTURES: Object = 12 "pictures"; + N_IDENTIFIERS: Object = 13 "identifiers"; + N_VISIBILITY: Tag = 14 "visibility"; + N_STORAGE_SIZE: u64 = 15 "storage_size"; - LANG_NATIVE = 0xa001 "native"; - LANG_ENG = 0xa002 "eng"; - LANG_DEU = 0xa003 "deu"; - LANG_JPN = 0xa003 "jpn"; + LANG_NATIVE: &str = 0xa001 "native"; + LANG_ENG: &str = 0xa002 "eng"; + LANG_DEU: &str = 0xa003 "deu"; + LANG_JPN: &str = 0xa003 "jpn"; } #[derive(Debug, Clone, Deserialize, Serialize, Default)] -- cgit v1.3