pub struct ContentSchema {
pub version: String,
pub content_type: ContentTypeId,
pub fields: Vec<FieldDefinition>,
pub required: Vec<String>,
pub validators: Vec<ValidatorDefinition>,
}Expand description
Schema definition for content validation and UI generation
Fields§
§version: StringSchema version for compatibility checking
content_type: ContentTypeIdContent type identifier
fields: Vec<FieldDefinition>Field definitions with types and constraints
required: Vec<String>Required fields for validation
validators: Vec<ValidatorDefinition>Custom validators (regex patterns, range checks, etc.)
Implementations§
Source§impl ContentSchema
impl ContentSchema
Sourcepub fn new(content_type: ContentTypeId, version: impl Into<String>) -> Self
pub fn new(content_type: ContentTypeId, version: impl Into<String>) -> Self
Create a new schema
Sourcepub fn with_field(self, field: FieldDefinition) -> Self
pub fn with_field(self, field: FieldDefinition) -> Self
Add a field definition
Sourcepub fn with_fields(self, fields: Vec<FieldDefinition>) -> Self
pub fn with_fields(self, fields: Vec<FieldDefinition>) -> Self
Add multiple field definitions
Sourcepub fn with_required(self, field_name: impl Into<String>) -> Self
pub fn with_required(self, field_name: impl Into<String>) -> Self
Mark a field as required
Sourcepub fn with_validator(self, validator: ValidatorDefinition) -> Self
pub fn with_validator(self, validator: ValidatorDefinition) -> Self
Add a validator
Sourcepub fn get_field(&self, name: &str) -> Option<&FieldDefinition>
pub fn get_field(&self, name: &str) -> Option<&FieldDefinition>
Get a field by name
Sourcepub fn is_required(&self, name: &str) -> bool
pub fn is_required(&self, name: &str) -> bool
Check if a field is required
Trait Implementations§
Source§impl Clone for ContentSchema
impl Clone for ContentSchema
Source§fn clone(&self) -> ContentSchema
fn clone(&self) -> ContentSchema
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ContentSchema
impl Debug for ContentSchema
Source§impl<'de> Deserialize<'de> for ContentSchema
impl<'de> Deserialize<'de> for ContentSchema
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for ContentSchema
impl PartialEq for ContentSchema
Source§impl Serialize for ContentSchema
impl Serialize for ContentSchema
impl StructuralPartialEq for ContentSchema
Auto Trait Implementations§
impl Freeze for ContentSchema
impl RefUnwindSafe for ContentSchema
impl Send for ContentSchema
impl Sync for ContentSchema
impl Unpin for ContentSchema
impl UnsafeUnpin for ContentSchema
impl UnwindSafe for ContentSchema
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.