lib

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

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 }