use crate::api::version::Version;
use platform::Platform;
use reqwest::Url;
use serde::Deserialize;
use std::sync::LazyLock;
pub mod channel;
pub mod platform;
pub mod version;
pub mod known_good_versions;
pub mod last_known_good_versions;
pub static API_BASE_URL: LazyLock<Url> =
LazyLock::new(|| Url::parse("https://googlechromelabs.github.io").expect("Valid URL"));
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
pub struct Download {
pub platform: Platform,
pub url: String,
}
pub trait HasVersion {
fn version(&self) -> Version;
}
impl HasVersion for known_good_versions::VersionWithoutChannel {
fn version(&self) -> Version {
self.version
}
}
impl HasVersion for last_known_good_versions::VersionInChannel {
fn version(&self) -> Version {
self.version
}
}