backbone-bucket 0.4.2

Bucket Bounded Context: File Storage Module for Backbone Framework
Documentation
//! Validator for Bucket entity
//!
//! Generated by metaphor-schema. Do not edit manually.
//!
//! Returns an `EntityValidator<Bucket>` pre-loaded with schema-derived
//! field rules. Extend in the `// <<< CUSTOM` zone.

use backbone_core::{EntityValidator, ValidationErrors, ValidationError};
use backbone_core::{NonNegative, OptionalNotBlank, RequiredString};
use crate::domain::entity::Bucket;

/// Validator type alias for Bucket entities.
pub type BucketValidator = EntityValidator<Bucket>;

/// Build a validator for Bucket with all schema-defined field rules.
pub fn bucket_validator() -> BucketValidator {
    EntityValidator::new()
        .rule(RequiredString::new("name", |e: &Bucket| &e.name))
        .rule(RequiredString::new("slug", |e: &Bucket| &e.slug))
        .rule(OptionalNotBlank::new("description", |e: &Bucket| e.description.as_deref()))
        .rule(RequiredString::new("root_path", |e: &Bucket| &e.root_path))
        .rule(NonNegative::new("file_count", |e: &Bucket| e.file_count as i64))
        .rule(NonNegative::new("total_size_bytes", |e: &Bucket| e.total_size_bytes))
    // hook rule: name_format (implement in CUSTOM zone)
    // hook rule: name_characters (implement in CUSTOM zone)
    // hook rule: slug_format (implement in CUSTOM zone)
    // hook rule: slug_characters (implement in CUSTOM zone)
    // hook rule: root_path_length (implement in CUSTOM zone)
    // hook rule: no_path_traversal (implement in CUSTOM zone)
    // hook rule: cannot_modify_deleted (implement in CUSTOM zone)
    // hook rule: unique_slug (implement in CUSTOM zone)
}