factor out file size display code

This commit is contained in:
xenofem 2022-11-10 12:41:51 -05:00
parent 920b28f5f5
commit d80180956f
3 changed files with 20 additions and 5 deletions

View file

@ -19,7 +19,7 @@ use bytesize::ByteSize;
use log::{error, warn};
use password_hash::PasswordHashString;
use serde::{Deserialize, Serialize};
use state::StateDb;
use state::{StateDb, prelude::SizedFile};
use store::{StoredFile, StoredFiles};
use tokio::fs::File;

View file

@ -1,6 +1,6 @@
use jsondb::JsonDb;
mod prelude {
pub mod prelude {
pub use std::collections::HashMap;
pub use jsondb::Schema;
@ -8,8 +8,17 @@ mod prelude {
pub use serde_with::serde_as;
pub use serde_with::skip_serializing_none;
pub use time::OffsetDateTime;
pub trait SizedFile {
fn size(&self) -> u64;
fn formatted_size(&self) -> String {
bytesize::to_string(self.size(), false).replace(" ", "")
}
}
}
mod v0;
pub mod v1 {
@ -42,6 +51,9 @@ pub mod v1 {
}
}
}
impl SizedFile for UploadedFile {
fn size(&self) -> u64 { self.size }
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct FileSet {
@ -70,6 +82,9 @@ pub mod v1 {
pub expiry: OffsetDateTime,
pub contents: Option<FileSet>,
}
impl SizedFile for StoredFile {
fn size(&self) -> u64 { self.size }
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct StoredFileWithPassword {