lockbook_shared/
server_file.rs1use crate::file_like::FileLike;
2use crate::signed_file::SignedFile;
3use serde::{Deserialize, Serialize};
4use std::fmt::{Display, Formatter};
5
6#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
7pub struct ServerFile {
8 pub file: SignedFile,
9 pub version: u64,
10}
11
12pub trait IntoServerFile {
13 fn add_time(self, version: u64) -> ServerFile;
14}
15
16impl IntoServerFile for SignedFile {
17 fn add_time(self, version: u64) -> ServerFile {
18 ServerFile { file: self, version }
19 }
20}
21
22trait FromSignedFile {
23 fn from(file: SignedFile, version: u64) -> ServerFile {
24 file.add_time(version)
25 }
26}
27
28impl Display for ServerFile {
29 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
30 write!(f, "{}", self.display())
31 }
32}