Skip to main content

nerva/clients/epic/
epic_parameters.rs

1use crate::core::Params;
2
3#[derive(Debug, Clone, Copy, PartialEq)]
4pub enum EPICParams<'p>
5{
6    /// Metadata on the most recent date of natural color imagery
7    Natural(&'p str),
8    /// Metadata for natural color imagery available for a given date
9    NaturalDate(&'p str),
10    /// A listing of all dates with available natural color imagery
11    NaturalAll,
12    /// Alternate listing of all dates with available color imagery
13    NaturalAvailable,
14    /// Metadata on the most recent date of enhanced color imagery
15    Enhanced,
16    /// Metadata for enhanced color imagery available for a given date
17    EhancedDate(&'p str),
18    /// A listing of all dates with available enhanced color imagery
19    EnhancedAll,
20    /// Alternate listing of all dates with available enhanced color imagery
21    EnhancedAvailable,
22}
23
24impl<'p> Default for EPICParams<'p>
25{
26    fn default() -> Self
27    {
28        EPICParams::NaturalAll
29    }
30}
31
32impl<'p> Into<String> for EPICParams<'p>
33{
34    fn into(self) -> String
35    {
36        match self
37        {
38            EPICParams::Natural(date) => format!("natural/date/{}", date),
39            EPICParams::NaturalDate(date) => format!("natural/date/{}", date),
40            EPICParams::NaturalAll => "natural/all".to_string(),
41            EPICParams::NaturalAvailable => "natural/available".to_string(),
42            EPICParams::Enhanced => "enhanced".to_string(),
43            EPICParams::EhancedDate(date) => format!("enhanced/date/{}", date),
44            EPICParams::EnhancedAll => "enhanced/all".to_string(),
45            EPICParams::EnhancedAvailable => "enhanced/available".to_string(),
46        }
47    }
48}
49
50impl<'p> Params for EPICParams<'p> {}