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:
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>,