progress/
builder.rs

1use progress::Progress;
2
3/// **Deprecation**: Using this directly as `progress::builder::ProgressBuilder`
4/// is deprecated, please use `progress::Builder` instead.
5#[derive(Default)]
6#[deprecated(since = "0.3.0", note = "Use Progress::new() instead")]
7pub struct ProgressBuilder {
8    starting_value: Option<usize>,
9    ending_value: Option<usize>,
10
11    caption: Option<String>,
12}
13
14#[allow(deprecated)]
15impl ProgressBuilder {
16    /// Creates a new `Builder` with default values.
17    pub fn new() -> Self {
18        ProgressBuilder::default()
19    }
20
21    /// Will build the `Progress`.
22    pub fn build(self) -> Progress {
23        Progress::new(
24            self.caption.unwrap_or_else(|| "Progress".to_string()),
25            self.starting_value.unwrap_or(0),
26            self.ending_value.unwrap_or(100),
27        )
28    }
29
30    /// Sets the starting value of the `Progress`.
31    pub fn set_start(self, v: usize) -> Self {
32        ProgressBuilder {
33            starting_value: Some(v),
34            ..self
35        }
36    }
37
38    /// Sets the maximum value of the `Progress`.
39    pub fn set_finish(self, v: usize) -> Self {
40        ProgressBuilder {
41            ending_value: Some(v),
42            ..self
43        }
44    }
45
46    /// Sets the caption for the `Progress`.
47    pub fn set_caption(self, v: String) -> Self {
48        ProgressBuilder {
49            caption: Some(v),
50            ..self
51        }
52    }
53}