lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

commit af6cc117f652bffd4120e797a2405b0920f65dfd
parent cebacfa1a59ec821d19912187eaa49f4162cd981
Author: triesap <tyson@radroots.org>
Date:   Sat, 27 Jun 2026 08:15:10 +0000

events: derive dto events comments documents and posts

Diffstat:
Mcrates/events/src/comment.rs | 2++
Mcrates/events/src/document.rs | 2++
Mcrates/events/src/dto.rs | 51---------------------------------------------------
Mcrates/events/src/post.rs | 2++
Mcrates/events/src/social.rs | 7+++++++
5 files changed, 13 insertions(+), 51 deletions(-)

diff --git a/crates/events/src/comment.rs b/crates/events/src/comment.rs @@ -4,6 +4,8 @@ use crate::social::RadrootsSocialTarget; use alloc::string::String; #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] +#[cfg_attr(feature = "dto-bindgen", dto(export))] #[derive(Clone, Debug)] pub struct RadrootsComment { pub root: RadrootsSocialTarget, diff --git a/crates/events/src/document.rs b/crates/events/src/document.rs @@ -4,6 +4,7 @@ use alloc::{string::String, vec::Vec}; #[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] +#[cfg_attr(feature = "dto-bindgen", dto(export))] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[derive(Clone, Debug)] pub struct RadrootsDocumentSubject { @@ -12,6 +13,7 @@ pub struct RadrootsDocumentSubject { } #[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] +#[cfg_attr(feature = "dto-bindgen", dto(export))] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[derive(Clone, Debug)] pub struct RadrootsDocument { diff --git a/crates/events/src/dto.rs b/crates/events/src/dto.rs @@ -701,39 +701,6 @@ impl Dto for RadrootsResourceHarvestCap { } } -impl Dto for RadrootsComment { - fn describe(ctx: &mut DescribeCtx) -> TypeRef { - let event_ref = RadrootsNostrEventRef::describe(ctx); - let def = StructDef::new( - "RadrootsComment", - "RadrootsComment", - span("crates/events/src/comment.rs", 8), - ) - .with_field(field( - "root", - "root", - event_ref, - "crates/events/src/comment.rs", - 9, - )) - .with_field(field( - "parent", - "parent", - RadrootsNostrEventRef::describe(ctx), - "crates/events/src/comment.rs", - 10, - )) - .with_field(field( - "content", - "content", - String::describe(ctx), - "crates/events/src/comment.rs", - 11, - )); - register(ctx, "RadrootsComment", TypeDef::Struct(def)) - } -} - impl Dto for RadrootsReaction { fn describe(ctx: &mut DescribeCtx) -> TypeRef { let def = StructDef::new( @@ -759,24 +726,6 @@ impl Dto for RadrootsReaction { } } -impl Dto for RadrootsPost { - fn describe(ctx: &mut DescribeCtx) -> TypeRef { - let def = StructDef::new( - "RadrootsPost", - "RadrootsPost", - span("crates/events/src/post.rs", 11), - ) - .with_field(field( - "content", - "content", - String::describe(ctx), - "crates/events/src/post.rs", - 12, - )); - register(ctx, "RadrootsPost", TypeDef::Struct(def)) - } -} - impl Dto for RadrootsListingParseError { fn describe(ctx: &mut DescribeCtx) -> TypeRef { let def = EnumDef::new( diff --git a/crates/events/src/post.rs b/crates/events/src/post.rs @@ -7,6 +7,8 @@ use crate::social::{ }; #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] +#[cfg_attr(feature = "dto-bindgen", dto(export))] #[derive(Clone, Debug)] pub struct RadrootsPost { pub content: String, diff --git a/crates/events/src/social.rs b/crates/events/src/social.rs @@ -4,6 +4,7 @@ use crate::farm::RadrootsFarmRef; use alloc::{string::String, vec::Vec}; #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] #[cfg_attr(feature = "serde", serde(rename_all = "snake_case", tag = "kind"))] #[derive(Clone, Debug, PartialEq, Eq)] pub enum RadrootsSocialTarget { @@ -27,6 +28,7 @@ pub enum RadrootsSocialTarget { } #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] #[derive(Clone, Debug, Default)] pub struct RadrootsSocialFarmAnchor { pub farm: RadrootsFarmRef, @@ -34,6 +36,7 @@ pub struct RadrootsSocialFarmAnchor { } #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct RadrootsSocialLocation { pub name: Option<String>, @@ -41,6 +44,7 @@ pub struct RadrootsSocialLocation { } #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct RadrootsSocialMediaDimensions { pub width: u32, @@ -48,6 +52,7 @@ pub struct RadrootsSocialMediaDimensions { } #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct RadrootsSocialMediaThumbnail { pub url: String, @@ -55,12 +60,14 @@ pub struct RadrootsSocialMediaThumbnail { } #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct RadrootsSocialMediaMetadata { pub url: Option<String>, pub mime_type: Option<String>, pub sha256: Option<String>, pub original_sha256: Option<String>, + #[cfg_attr(feature = "dto-bindgen", dto(int = "json_string"))] pub size: Option<u64>, pub dimensions: Option<RadrootsSocialMediaDimensions>, pub blurhash: Option<String>,