Skip to main content

howler_core/
config.rs

1use std::env;
2
3pub struct Config {
4    pub movebank_username: Option<String>,
5    pub movebank_password: Option<String>,
6    pub inaturalist_token: Option<String>,
7    pub iucn_token: Option<String>,
8}
9
10impl Config {
11    pub fn from_env() -> Self {
12        Self {
13            movebank_username: env::var("MOVEBANK_USERNAME").ok(),
14            movebank_password: env::var("MOVEBANK_PASSWORD").ok(),
15            inaturalist_token: env::var("INATURALIST_TOKEN").ok(),
16            iucn_token: env::var("IUCN_TOKEN").ok(),
17        }
18    }
19
20    pub fn has_movebank_credentials(&self) -> bool {
21        self.movebank_username.is_some() && self.movebank_password.is_some()
22    }
23
24    pub fn has_inaturalist_token(&self) -> bool {
25        self.inaturalist_token.is_some()
26    }
27
28    pub fn has_iucn_token(&self) -> bool {
29        self.iucn_token.is_some()
30    }
31}
32
33impl Default for Config {
34    fn default() -> Self {
35        Self::from_env()
36    }
37}