factor out file size display code
This commit is contained in:
parent
920b28f5f5
commit
d80180956f
3 changed files with 20 additions and 5 deletions
|
@ -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;
|
||||
|
||||
|
|
17
src/state.rs
17
src/state.rs
|
@ -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 {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue