message.rs (859B)
1 #![forbid(unsafe_code)] 2 3 use crate::tag::EventPtr; 4 5 #[cfg(not(feature = "std"))] 6 use alloc::{string::String, vec::Vec}; 7 8 #[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] 9 #[cfg_attr(all(test, feature = "std"), dto(export))] 10 #[cfg_attr( 11 any(feature = "serde", test), 12 derive(serde::Serialize, serde::Deserialize) 13 )] 14 #[derive(Clone, Debug)] 15 pub struct Message { 16 pub recipients: Vec<MessageRecipient>, 17 pub content: String, 18 pub reply_to: Option<EventPtr>, 19 pub subject: Option<String>, 20 } 21 22 #[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] 23 #[cfg_attr(all(test, feature = "std"), dto(export))] 24 #[cfg_attr( 25 any(feature = "serde", test), 26 derive(serde::Serialize, serde::Deserialize) 27 )] 28 #[derive(Clone, Debug)] 29 pub struct MessageRecipient { 30 pub public_key: String, 31 pub relay_url: Option<String>, 32 }