Struct icu_plurals::rules::ast::Rule[][src]

pub struct Rule {
    pub condition: Condition,
    pub samples: Option<Samples>,
}

A complete AST representation of a plural rule. Comprises a vector of AndConditions and optionally a set of Samples.

Examples

use icu::plurals::rules::ast::*;
use icu::plurals::rules::{parse, parse_condition};

let condition = parse_condition(b"i = 5 or v = 2")
    .expect("Parsing failed.");

let samples = Samples {
    integer: Some(SampleList {
        sample_ranges: Box::new([SampleRange {
            lower_val: DecimalValue("2".to_string()),
            upper_val: None,
        }]),
        ellipsis: true
    }),
    decimal: Some(SampleList {
        sample_ranges: Box::new([SampleRange {
            lower_val: DecimalValue("2.5".to_string()),
            upper_val: None,
        }]),
        ellipsis: false
    }),
};

let rule = Rule {
    condition,
    samples: Some(samples),
};

assert_eq!(
    rule,
    parse("i = 5 or v = 2 @integer 2, … @decimal 2.5".as_bytes())
         .expect("Parsing failed")
)

Fields

condition: Conditionsamples: Option<Samples>

Trait Implementations

impl Clone for Rule[src]

impl Debug for Rule[src]

impl PartialEq<Rule> for Rule[src]

impl StructuralPartialEq for Rule[src]

Auto Trait Implementations

impl RefUnwindSafe for Rule

impl Send for Rule

impl Sync for Rule

impl Unpin for Rule

impl UnwindSafe for Rule

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> ErasedDataStruct for T where
    T: Clone + Debug + Any
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.