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<Dialect, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Dialect, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for Dialect
impl Serialize for Dialect
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. 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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.