1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
use crate::endpoints::common::FileMetadataInfo; use crate::endpoints::Endpoint; #[derive(Debug, Clone, Deserialize)] pub struct SearchFilesResponse { pub file_ids: Vec<u64>, } pub enum FileSearchLocation { All, Inbox, Archive, } impl FileSearchLocation { pub fn is_inbox(&self) -> bool { if let &Self::Inbox = &self { true } else { self.is_all() } } pub fn is_all(&self) -> bool { if let &Self::All = &self { true } else { false } } pub fn is_archive(&self) -> bool { if let &Self::Archive = &self { true } else { self.is_all() } } } pub struct SearchFiles; impl Endpoint for SearchFiles { type Request = (); type Response = SearchFilesResponse; fn get_path() -> String { String::from("get_files/search_files") } } #[derive(Clone, Default, Deserialize)] pub struct FileMetadataResponse { metadata: Vec<FileMetadataInfo>, } pub struct FileMetadata; impl Endpoint for FileMetadata { type Request = (); type Response = FileMetadataResponse; fn get_path() -> String { String::from("get_files/file_metadata") } } pub struct GetFile; impl Endpoint for GetFile { type Request = (); type Response = (); fn get_path() -> String { String::from("get_files/file") } }