melvin_ob/objective/secret_img_objective.rs
1use crate::imaging::CameraAngle;
2use chrono::{DateTime, Utc};
3
4/// Represents an objective focused on capturing a secret image.
5#[derive(Debug, Clone)]
6pub struct SecretImgObjective {
7 id: usize,
8 name: String,
9 start: DateTime<Utc>,
10 end: DateTime<Utc>,
11 optic_required: CameraAngle,
12 coverage_required: f32,
13}
14
15impl SecretImgObjective {
16 /// Creates a new [`SecretImgObjective`].
17 ///
18 /// # Arguments
19 /// - `id`: The unique identifier for the objective.
20 /// - `name`: The name of the objective.
21 /// - `start`: The start time of the objective, specified as a `DateTime<Utc>`.
22 /// - `end`: The end time of the objective, specified as a `DateTime<Utc>`.
23 /// - `optic_required`: The required camera angle for capturing the image.
24 /// - `coverage_required`: The required coverage area for image processing.
25 ///
26 /// # Returns
27 /// A new [`SecretImgObjective`] instance.
28 pub fn new(
29 id: usize,
30 name: String,
31 start: DateTime<Utc>,
32 end: DateTime<Utc>,
33 optic_required: CameraAngle,
34 coverage_required: f32,
35 ) -> Self {
36 Self { id, name, start, end, optic_required, coverage_required }
37 }
38}