use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(test, derive(Default))]
pub struct File {
#[serde(rename = "$id")]
pub id: String,
#[serde(rename = "bucketId")]
pub bucket_id: String,
#[serde(rename = "$createdAt")]
pub created_at: String,
#[serde(rename = "$updatedAt")]
pub updated_at: String,
#[serde(rename = "$permissions")]
pub permissions: Vec<String>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "signature")]
pub signature: String,
#[serde(rename = "mimeType")]
pub mime_type: String,
#[serde(rename = "sizeOriginal")]
pub size_original: i64,
#[serde(rename = "chunksTotal")]
pub chunks_total: i64,
#[serde(rename = "chunksUploaded")]
pub chunks_uploaded: i64,
#[serde(rename = "encryption")]
pub encryption: bool,
#[serde(rename = "compression")]
pub compression: String,
}
impl File {
pub fn id(&self) -> &String {
&self.id
}
pub fn bucket_id(&self) -> &String {
&self.bucket_id
}
pub fn created_at(&self) -> &String {
&self.created_at
}
pub fn updated_at(&self) -> &String {
&self.updated_at
}
pub fn permissions(&self) -> &Vec<String> {
&self.permissions
}
pub fn name(&self) -> &String {
&self.name
}
pub fn signature(&self) -> &String {
&self.signature
}
pub fn mime_type(&self) -> &String {
&self.mime_type
}
pub fn size_original(&self) -> &i64 {
&self.size_original
}
pub fn chunks_total(&self) -> &i64 {
&self.chunks_total
}
pub fn chunks_uploaded(&self) -> &i64 {
&self.chunks_uploaded
}
pub fn encryption(&self) -> &bool {
&self.encryption
}
pub fn compression(&self) -> &String {
&self.compression
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_file_creation() {
let _model = <File as Default>::default();
let _ = _model.id();
let _ = _model.bucket_id();
let _ = _model.created_at();
let _ = _model.updated_at();
let _ = _model.permissions();
let _ = _model.name();
let _ = _model.signature();
let _ = _model.mime_type();
let _ = _model.size_original();
let _ = _model.chunks_total();
let _ = _model.chunks_uploaded();
let _ = _model.encryption();
let _ = _model.compression();
}
#[test]
fn test_file_serialization() {
let model = <File as Default>::default();
let json = serde_json::to_string(&model);
assert!(json.is_ok());
let deserialized: Result<File, _> = serde_json::from_str(&json.unwrap());
assert!(deserialized.is_ok());
}
}