use crate::model::data::record::Record;
pub use crate::model::types::value::Value;
pub use data::field::Field;
pub use data::record::Record as RecordStruct;
use std::sync::Arc;
pub mod error;
pub mod fmt_def;
pub mod format;
mod macros;
pub mod data;
pub mod types;
pub use data::field_ref::FieldRef;
pub use data::storage::FieldStorage;
pub use types::meta::{DataType, MetaErr};
pub use types::value::{DateTimeValue, DomainT, EmailT, IdCardT, Maker, MobilePhoneT, UrlValue};
pub use types::value::{DigitValue, FloatValue, HexT, IgnoreT, IpNetValue};
pub type FNameStr = smol_str::SmolStr;
pub type FValueStr = smol_str::SmolStr;
pub type DataField = Field<Value>;
pub type DataRecord = Record<FieldStorage>;
pub type SharedRecord = Record<Arc<DataField>>;