Skip to main content

backbone_bucket/domain/value_objects/
storage_size.rs

1//! StorageSize value object
2//!
3//! Generated by metaphor-schema. Do not edit manually.
4//!
5//! This is a DDD Value Object - immutable, no identity, equality by attributes.
6
7use serde::{Deserialize, Serialize};
8#[cfg(feature = "openapi")]
9use utoipa::ToSchema;
10
11#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
12#[cfg_attr(feature = "openapi", derive(ToSchema))]
13pub struct StorageSize {
14    pub size_bytes: i64,
15}
16
17impl StorageSize {
18    /// Create a new StorageSize value object
19    pub fn new(size_bytes: i64) -> Self {
20        Self {
21            size_bytes,
22        }
23    }
24
25    /// Create a builder for StorageSize
26    pub fn builder() -> StorageSizeBuilder {
27        <StorageSizeBuilder as Default>::default()
28    }
29
30}
31
32/// Builder for StorageSize value object
33#[derive(Debug, Clone, Default)]
34pub struct StorageSizeBuilder {
35    size_bytes: Option<i64>,
36}
37
38impl StorageSizeBuilder {
39    /// Set the size_bytes field
40    pub fn size_bytes(mut self, value: i64) -> Self {
41        self.size_bytes = Some(value);
42        self
43    }
44
45    /// Build the StorageSize value object
46    pub fn build(self) -> Result<StorageSize, String> {
47        let size_bytes = self.size_bytes.ok_or_else(|| "size_bytes is required".to_string())?;
48
49        let value = StorageSize {
50            size_bytes,
51        };
52
53        Ok(value)
54    }
55
56}