pub enum Dialect {
Normative,
ZeroTolerant,
OneTolerant,
}Expand description
Dialect for ODO min_count interpretation
The dialect lever controls how min_count is interpreted for ODO arrays:
| Dialect | min_count Interpretation | Description |
|---|---|---|
Normative | min_count is enforced | Counter must be ≥ min_count (strict) |
ZeroTolerant | min_count is ignored | Counter can be 0..max_count (relaxed) |
OneTolerant | min_count clamped to 1 | Counter must be ≥ max(1, min_count) |
§Examples
use copybook_dialect::Dialect;
use std::str::FromStr;
// Default dialect is Normative
let default = Dialect::default();
assert_eq!(default, Dialect::Normative);
// Parse from string
let normative = Dialect::from_str("n").unwrap();
assert_eq!(normative, Dialect::Normative);
let zero_tolerant = Dialect::from_str("0").unwrap();
assert_eq!(zero_tolerant, Dialect::ZeroTolerant);
let one_tolerant = Dialect::from_str("1").unwrap();
assert_eq!(one_tolerant, Dialect::OneTolerant);Variants§
Normative
Normative dialect - min_count is strictly enforced
Counter must be ≥ min_count. This is the default behavior.
ZeroTolerant
Zero-tolerant dialect - min_count is ignored
Counter can be 0..max_count, regardless of declared min_count.
OneTolerant
One-tolerant dialect - min_count is clamped to 1
Counter must be ≥ max(1, min_count). This allows zero-length arrays
when min_count is 0, but enforces at least one element otherwise.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Dialect
impl<'de> Deserialize<'de> for Dialect
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
impl Copy for Dialect
impl Eq for Dialect
impl StructuralPartialEq for Dialect
Auto Trait Implementations§
impl Freeze for Dialect
impl RefUnwindSafe for Dialect
impl Send for Dialect
impl Sync for Dialect
impl Unpin for Dialect
impl UnsafeUnpin for Dialect
impl UnwindSafe for Dialect
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