message_file.rs (1352B)
1 #![forbid(unsafe_code)] 2 3 use crate::social::message::MessageRecipient; 4 use crate::tag::EventPtr; 5 6 #[cfg(not(feature = "std"))] 7 use alloc::{string::String, vec::Vec}; 8 9 #[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] 10 #[cfg_attr(all(test, feature = "std"), dto(export))] 11 #[cfg_attr( 12 any(feature = "serde", test), 13 derive(serde::Serialize, serde::Deserialize) 14 )] 15 #[derive(Clone, Debug)] 16 pub struct MessageFile { 17 pub recipients: Vec<MessageRecipient>, 18 pub file_url: String, 19 pub reply_to: Option<EventPtr>, 20 pub subject: Option<String>, 21 pub file_type: String, 22 pub encryption_algorithm: String, 23 pub decryption_key: String, 24 pub decryption_nonce: String, 25 pub encrypted_hash: String, 26 pub original_hash: Option<String>, 27 #[cfg_attr(all(test, feature = "std"), dto(int = "json_string"))] 28 pub size: Option<u64>, 29 pub dimensions: Option<MessageFileDimensions>, 30 pub blurhash: Option<String>, 31 pub thumb: Option<String>, 32 pub fallbacks: Vec<String>, 33 } 34 35 #[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] 36 #[cfg_attr(all(test, feature = "std"), dto(export))] 37 #[cfg_attr( 38 any(feature = "serde", test), 39 derive(serde::Serialize, serde::Deserialize) 40 )] 41 #[derive(Clone, Copy, Debug, PartialEq, Eq)] 42 pub struct MessageFileDimensions { 43 pub w: u32, 44 pub h: u32, 45 }