chrome_for_testing/api/
mod.rs

1use crate::api::version::Version;
2use platform::Platform;
3use reqwest::Url;
4use serde::Deserialize;
5use std::sync::LazyLock;
6
7pub mod channel;
8pub mod platform;
9pub mod version;
10
11/// A long list of working releases. None are assigned to any channel.
12pub mod known_good_versions;
13
14/// The last working releases for each channel.
15pub mod last_known_good_versions;
16
17static API_BASE_URL: LazyLock<Url> =
18    LazyLock::new(|| Url::parse("https://googlechromelabs.github.io").unwrap());
19
20#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
21pub struct Download {
22    pub platform: Platform,
23    pub url: String,
24}
25
26pub trait HasVersion {
27    fn version(&self) -> Version;
28}
29
30impl HasVersion for known_good_versions::VersionWithoutChannel {
31    fn version(&self) -> Version {
32        self.version
33    }
34}
35
36impl HasVersion for last_known_good_versions::VersionInChannel {
37    fn version(&self) -> Version {
38        self.version
39    }
40}