1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
/// A Vojaq field is an "array" of variants. /// /// A variant is basically a string which does not contain /// delimiters (`{`, `}`, `|`, linefeed…). /// /// The text representation of a Vojaq field is a series /// of variants (strings) separated by a pipeline character. /// /// ``` vojaq /// first variant | second variant | third variant /// ``` #[derive(Debug, PartialEq, Eq)] pub struct VojaqField { variants: Vec<String> } impl VojaqField { pub fn new() -> VojaqField { VojaqField { variants: vec![] } } pub fn variants(&self) -> &Vec<String> { &self.variants } pub fn push(&mut self, variant: String) { self.variants.push(variant); } pub fn get(&self, field_number: usize) -> Option<&String> { self.variants.get(field_number) } }