Skip to main content

js_protocol/schema/
mod.rs

1//! This domain is deprecated.
2
3
4use serde::{Serialize, Deserialize};
5use serde_json::Value as JsonValue;
6use std::borrow::Cow;
7
8/// Description of the protocol domain.
9
10#[derive(Debug, Clone, Serialize, Deserialize, Default)]
11#[serde(rename_all = "camelCase")]
12pub struct Domain<'a> {
13    /// Domain name.
14    name: Cow<'a, str>,
15    /// Domain version.
16    version: Cow<'a, str>,
17}
18
19impl<'a> Domain<'a> {
20    /// Creates a builder for this type with the required parameters:
21    /// * `name`: Domain name.
22    /// * `version`: Domain version.
23    pub fn builder(name: impl Into<Cow<'a, str>>, version: impl Into<Cow<'a, str>>) -> DomainBuilder<'a> {
24        DomainBuilder {
25            name: name.into(),
26            version: version.into(),
27        }
28    }
29    /// Domain name.
30    pub fn name(&self) -> &str { self.name.as_ref() }
31    /// Domain version.
32    pub fn version(&self) -> &str { self.version.as_ref() }
33}
34
35
36pub struct DomainBuilder<'a> {
37    name: Cow<'a, str>,
38    version: Cow<'a, str>,
39}
40
41impl<'a> DomainBuilder<'a> {
42    pub fn build(self) -> Domain<'a> {
43        Domain {
44            name: self.name,
45            version: self.version,
46        }
47    }
48}
49
50/// Returns supported domains.
51
52#[derive(Debug, Clone, Serialize, Deserialize, Default)]
53#[serde(rename_all = "camelCase")]
54pub struct GetDomainsReturns<'a> {
55    /// List of supported domains.
56    domains: Vec<Domain<'a>>,
57}
58
59impl<'a> GetDomainsReturns<'a> {
60    /// Creates a builder for this type with the required parameters:
61    /// * `domains`: List of supported domains.
62    pub fn builder(domains: Vec<Domain<'a>>) -> GetDomainsReturnsBuilder<'a> {
63        GetDomainsReturnsBuilder {
64            domains: domains,
65        }
66    }
67    /// List of supported domains.
68    pub fn domains(&self) -> &[Domain<'a>] { &self.domains }
69}
70
71
72pub struct GetDomainsReturnsBuilder<'a> {
73    domains: Vec<Domain<'a>>,
74}
75
76impl<'a> GetDomainsReturnsBuilder<'a> {
77    pub fn build(self) -> GetDomainsReturns<'a> {
78        GetDomainsReturns {
79            domains: self.domains,
80        }
81    }
82}
83
84#[derive(Debug, Clone, Serialize, Deserialize, Default)]
85pub struct GetDomainsParams {}
86
87impl GetDomainsParams { pub const METHOD: &'static str = "Schema.getDomains"; }
88
89impl<'a> crate::CdpCommand<'a> for GetDomainsParams {
90    const METHOD: &'static str = "Schema.getDomains";
91    type Response = GetDomainsReturns<'a>;
92}