lyrical_meter/
lyrical_meter_builder.rs

1crate::ix!();
2
3/// Builder for `LyricalMeter`.
4#[derive(Default)]
5pub struct LyricalMeterBuilder {
6    foot:   MetricalFoot,
7    length: Option<LineLength>,
8}
9
10impl LyricalMeterBuilder {
11    /// Sets the metrical foot.
12    pub fn foot(mut self, foot: MetricalFoot) -> Self {
13        self.foot = foot;
14        self
15    }
16
17    /// Sets the line length.
18    pub fn length(mut self, length: LineLength) -> Self {
19        self.length = Some(length);
20        self
21    }
22
23    /// Builds and returns the final `LyricalMeter`.
24    pub fn build(self) -> LyricalMeter {
25        let mut x = LyricalMeter::default();
26        x.set_foot(self.foot);
27        x.set_length(self.length);
28        x
29    }
30}