howler-core 0.1.0

Core library for the Howler wolf-tracking platform: database, data ingestion, ML, web server, and real-time streaming
Documentation
use std::env;

pub struct Config {
    pub movebank_username: Option<String>,
    pub movebank_password: Option<String>,
    pub inaturalist_token: Option<String>,
    pub iucn_token: Option<String>,
}

impl Config {
    pub fn from_env() -> Self {
        Self {
            movebank_username: env::var("MOVEBANK_USERNAME").ok(),
            movebank_password: env::var("MOVEBANK_PASSWORD").ok(),
            inaturalist_token: env::var("INATURALIST_TOKEN").ok(),
            iucn_token: env::var("IUCN_TOKEN").ok(),
        }
    }

    pub fn has_movebank_credentials(&self) -> bool {
        self.movebank_username.is_some() && self.movebank_password.is_some()
    }

    pub fn has_inaturalist_token(&self) -> bool {
        self.inaturalist_token.is_some()
    }

    pub fn has_iucn_token(&self) -> bool {
        self.iucn_token.is_some()
    }
}

impl Default for Config {
    fn default() -> Self {
        Self::from_env()
    }
}