diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-01-06 02:53:21 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-01-06 02:53:21 +0100 |
| commit | bb7aa0604d1928ec435e97f6e58521597bc61c3b (patch) | |
| tree | f12f1b876c7876a79736f88aedeb4290896170d9 /common/src/lib.rs | |
| parent | ce5ed3f54e873fff9135313a4ed9fa6656caf741 (diff) | |
| download | jellything-bb7aa0604d1928ec435e97f6e58521597bc61c3b.tar jellything-bb7aa0604d1928ec435e97f6e58521597bc61c3b.tar.bz2 jellything-bb7aa0604d1928ec435e97f6e58521597bc61c3b.tar.zst | |
impl value for object
Diffstat (limited to 'common/src/lib.rs')
| -rw-r--r-- | common/src/lib.rs | 44 |
1 files changed, 23 insertions, 21 deletions
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)] |