aboutsummaryrefslogtreecommitdiff
path: root/common/src/lib.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-01-06 02:53:21 +0100
committermetamuffin <metamuffin@disroot.org>2026-01-06 02:53:21 +0100
commitbb7aa0604d1928ec435e97f6e58521597bc61c3b (patch)
treef12f1b876c7876a79736f88aedeb4290896170d9 /common/src/lib.rs
parentce5ed3f54e873fff9135313a4ed9fa6656caf741 (diff)
downloadjellything-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.rs44
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)]