chrome_for_testing/api/
mod.rs1use crate::api::version::Version;
2use platform::Platform;
3use reqwest::Url;
4use serde::Deserialize;
5use std::sync::LazyLock;
6
7pub mod channel;
9
10pub mod platform;
12
13pub mod version;
15
16pub mod known_good_versions;
18
19pub mod last_known_good_versions;
21
22pub static API_BASE_URL: LazyLock<Url> =
27 LazyLock::new(|| Url::parse("https://googlechromelabs.github.io").expect("Valid URL"));
28
29#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
31pub struct Download {
32 pub platform: Platform,
34
35 pub url: String,
37}
38
39pub trait HasVersion {
41 fn version(&self) -> Version;
43}
44
45impl HasVersion for known_good_versions::VersionWithoutChannel {
46 fn version(&self) -> Version {
47 self.version
48 }
49}
50
51impl HasVersion for last_known_good_versions::VersionInChannel {
52 fn version(&self) -> Version {
53 self.version
54 }
55}