use serde::{Deserialize, Serialize};
#[cfg(feature = "openapi")]
use utoipa::ToSchema;
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[cfg_attr(feature = "openapi", derive(ToSchema))]
pub struct StorageSize {
pub size_bytes: i64,
}
impl StorageSize {
pub fn new(size_bytes: i64) -> Self {
Self {
size_bytes,
}
}
pub fn builder() -> StorageSizeBuilder {
<StorageSizeBuilder as Default>::default()
}
}
#[derive(Debug, Clone, Default)]
pub struct StorageSizeBuilder {
size_bytes: Option<i64>,
}
impl StorageSizeBuilder {
pub fn size_bytes(mut self, value: i64) -> Self {
self.size_bytes = Some(value);
self
}
pub fn build(self) -> Result<StorageSize, String> {
let size_bytes = self.size_bytes.ok_or_else(|| "size_bytes is required".to_string())?;
let value = StorageSize {
size_bytes,
};
Ok(value)
}
}