1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! # Chrome for Testing API Client
//!
//! This crate provides programmatic access to "chrome-for-testing" JSON APIs,
//! which are used to retrieve version details and other relevant information about
//! Chrome and ChromeDriver for testing purposes.
//!
//! ## Modules Overview
//!
//! - [`api`]: Contains the core functionality to interact with the API endpoints.
//! - [`chromedriver`]: Facilitates interaction with ChromeDriver-specific data and operations.
//!
//! ## API Endpoints
//!
//! The crate leverages the following JSON API endpoints:
//! - **Known Good Versions**: Provides a list of known good versions of Chrome.
//! - **Last Known Good Versions**: Retrieves the last known good version of Chrome.
//!
//! For detailed documentation on these APIs, see the
//! [official Chrome for Testing documentation](https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints).
//!
//! ## Features
//!
//! - **Ease of Use**: Simplifies interaction with Chrome's testing-related APIs.
//! - **Type-Safe Deserialization**: Automatically maps JSON responses to Rust structs for
//! seamless API interaction.
//! - **Asynchronous Support**: Fully asynchronous using the `tokio` runtime.
//!
//! ## Example Usage
//!
//! ```rust
//! #[tokio::main]
//! async fn main() {
//! use chrome_for_testing::api::known_good_versions::KnownGoodVersions;
//!
//! let client = reqwest::Client::new();
//! match KnownGoodVersions::fetch(client).await {
//! Ok(data) => println!("Successfully fetched Chrome versions: {:?}", data),
//! Err(e) => println!("Error occurred: {}", e),
//! }
//! }
//! ```
/// Chrome for Testing API types and functions for fetching version information.
/// ChromeDriver specific utilities, such as log level configuration.
/// Error types used throughout the crate.