use std::rc::Rc;
#[derive(Debug, Clone, Default)]
pub(crate) struct XmlSchemaValDecimal {
lo: u64,
mi: u64,
hi: u64,
extra: u32,
sign: u8,
frac: u8,
total: u8,
}
#[derive(Debug, Clone, Default)]
pub(crate) struct XmlSchemaValDuration {
pub(crate) mon: i64,
pub(crate) day: i64,
pub(crate) sec: f64,
}
#[derive(Debug, Clone, Default)]
pub(crate) struct XmlSchemaValDate {
pub(crate) year: i64,
pub(crate) mon: u8,
pub(crate) day: u8,
pub(crate) hour: u8,
pub(crate) min: u8,
pub(crate) sec: f64,
pub(crate) tz_flag: u8,
pub(crate) tzo: i16,
}
#[derive(Debug, Clone, Default)]
pub(crate) struct XmlSchemaValHex {
s: Rc<str>,
total: u32,
}
#[derive(Debug, Clone, Default)]
pub(crate) struct XmlSchemaValBase64 {
s: Rc<str>,
total: u32,
}
#[derive(Debug, Clone, Default)]
pub(crate) struct XmlSchemaValQName {
name: Rc<str>,
uri: Rc<str>,
}
#[derive(Debug, Clone)]
pub(crate) enum XmlSchemaValPrimitives {
String(Rc<str>),
Boolean(bool),
Decimal(XmlSchemaValDecimal),
Float(f32),
Double(f64),
Duration(XmlSchemaValDuration),
Date(XmlSchemaValDate),
Hex(XmlSchemaValHex),
Base64(XmlSchemaValBase64),
QName(XmlSchemaValQName),
}