pub(crate) mod base;
mod constants;
mod dependents;
mod lax;
mod required;
pub(crate) mod types;
mod virtuals;
pub use base::TimestampConfig;
use crate::{
schema::{
fields::{
constants::ConstantFieldBuilder, dependents::DependentFieldBuilder,
lax::LaxFieldBuilder, required::RequiredFieldBuilder, virtuals::VirtualFieldBuilder,
},
types::Yes,
FieldValue,
},
IvoErrorSanitizer, IvoStruct,
};
pub fn constant_field<
T: FieldValue,
I: IvoStruct,
O: IvoStruct,
CtxOptions,
ErrorSanitizer: IvoErrorSanitizer<CtxOptions>,
>(
name: &'static str,
) -> ConstantFieldBuilder<T, I, O, CtxOptions, ErrorSanitizer> {
ConstantFieldBuilder::new(name)
}
pub fn dependent_field<
T: FieldValue,
I: IvoStruct,
O: IvoStruct,
CtxOptions,
ErrorSanitizer: IvoErrorSanitizer<CtxOptions>,
const N: usize,
>(
name: &'static str,
fields: [&'static str; N],
) -> DependentFieldBuilder<T, I, O, CtxOptions, ErrorSanitizer, Yes> {
DependentFieldBuilder::new(name, fields)
}
pub fn lax_field<
T: FieldValue,
I: IvoStruct,
O: IvoStruct,
CtxOptions,
ErrorSanitizer: IvoErrorSanitizer<CtxOptions>,
>(
name: &'static str,
) -> LaxFieldBuilder<T, I, O, CtxOptions, ErrorSanitizer> {
LaxFieldBuilder::new(name)
}
pub fn required_field<
T: FieldValue,
I: IvoStruct,
O: IvoStruct,
CtxOptions,
ErrorSanitizer: IvoErrorSanitizer<CtxOptions>,
>(
name: &'static str,
) -> RequiredFieldBuilder<T, I, O, CtxOptions, ErrorSanitizer> {
RequiredFieldBuilder::new(name)
}
pub fn virtual_field<
T: FieldValue,
I: IvoStruct,
O: IvoStruct,
CtxOptions,
ErrorSanitizer: IvoErrorSanitizer<CtxOptions>,
>(
name: &'static str,
) -> VirtualFieldBuilder<T, I, O, CtxOptions, ErrorSanitizer> {
VirtualFieldBuilder::new(name)
}