1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
use std::sync::Arc;

#[derive(Debug, Clone)]
pub(crate) enum ApiUrl {
    Default,
    Custom(Arc<reqwest::Url>),
}

impl ApiUrl {
    pub(crate) fn get(&self) -> reqwest::Url {
        match self {
            // FIXME(waffle): parse once
            ApiUrl::Default => reqwest::Url::parse(crate::net::TELEGRAM_API_URL)
                .expect("failed to parse default url"),
            ApiUrl::Custom(url) => (&**url).clone(),
        }
    }
}