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
use super::Progress; #[derive(Default)] pub struct ProgressBuilder { starting_value: Option<usize>, ending_value: Option<usize>, caption: Option<String>, } impl ProgressBuilder { pub fn new() -> Self { ProgressBuilder::default() } pub fn build(self) -> Progress { Progress { current: self.starting_value.unwrap_or(0), total: self.ending_value.unwrap_or(100), caption: self.caption.unwrap_or("Progress".to_string()), started: false, } } pub fn set_start(self, v: usize) -> Self { ProgressBuilder { starting_value: Some(v), .. self } } pub fn set_finish(self, v: usize) -> Self { ProgressBuilder { ending_value: Some(v), .. self } } }