Skip to main content

uddf_sdk/entities/samples/
builder.rs

1use crate::entities::waypoint::structure::Waypoint;
2
3use super::structure::Samples;
4
5/// Builder for creating `Samples` instances.
6pub struct SamplesBuilder {
7    waypoints: Vec<Waypoint>,
8}
9
10impl SamplesBuilder {
11    /// Create a new `SamplesBuilder` instance.
12    pub fn new() -> Self {
13        SamplesBuilder {
14            waypoints: Vec::new(),
15        }
16    }
17
18    /// Add a waypoint.
19    pub fn add_waypoint(mut self, waypoint: Waypoint) -> Self {
20        self.waypoints.push(waypoint);
21        self
22    }
23
24    /// Build the final `Samples` object.
25    pub fn build(self) -> Result<Samples, &'static str> {
26        Ok(Samples {
27            waypoints: self.waypoints,
28        })
29    }
30}
31
32impl Default for SamplesBuilder {
33    fn default() -> Self {
34        Self::new()
35    }
36}