Module value_objects

Module value_objects 

Source
Expand description

Value objects for SCIM resource domain primitives.

This module contains immutable value objects that encapsulate validation logic for core SCIM domain concepts. Each value object enforces invariants at construction time, making invalid states unrepresentable.

§Design Principles

  • Immutable: Once created, value objects cannot be modified
  • Self-validating: Validation happens at construction time via explicit constructors
  • Type-safe: Invalid states are unrepresentable at compile time
  • Domain-focused: Each type represents a specific business concept

§Usage Pattern

Structs§

Address
A validated SCIM address attribute.
CompositeValidatorChain
Composite validator that combines multiple validation rules.
EmailAddress
A validated SCIM email address.
EmailConsistencyValidator
Validator for email address consistency across different contexts.
ExtensionAttributeValue
A single extension attribute with its value and metadata.
ExtensionCollection
Collection of extension attributes grouped by schema URI.
ExternalId
A validated SCIM external identifier.
GenericMultiValuedAttribute
Generic multi-valued attribute container for factory-created objects.
GroupMember
A value object representing a single group member in SCIM.
IdentityConsistencyValidator
Validator for resource identity consistency.
Meta
A validated SCIM meta attribute.
MultiValuedAttribute
A generic container for multi-valued SCIM attributes.
Name
A validated SCIM name attribute.
NameConsistencyValidator
Validator for name and display name consistency.
PhoneNumber
A validated SCIM phone number attribute.
ResourceId
A validated SCIM resource identifier.
SchemaUri
A validated SCIM schema URI.
UniquePrimaryValidator
Validator that ensures unique primary values across multi-valued attributes.
UserName
A validated SCIM user name.
UserNameUniquenessValidator
Validator that ensures username uniqueness constraints.
ValueObjectRegistry
Registry for value object constructors.

Traits§

CompositeValidator
Trait for composite validation across multiple value objects.
ExtensionAttribute
Trait for value objects that represent extension attributes.
SchemaConstructible
Trait for value objects that can be created from schema definitions.
ValueObject
Core trait for all SCIM value objects.
ValueObjectConstructor
Trait for value object constructors that can be registered.

Type Aliases§

GroupMembers
Type alias for a collection of group members using MultiValuedAttribute.
MultiValuedAddresses
Type alias for a collection of addresses using MultiValuedAttribute.
MultiValuedEmails
Type alias for a collection of email addresses using MultiValuedAttribute.
MultiValuedPhoneNumbers
Type alias for a collection of phone numbers using MultiValuedAttribute.