js_protocol/schema/
mod.rs1use serde::{Serialize, Deserialize};
5use serde_json::Value as JsonValue;
6use std::borrow::Cow;
7
8#[derive(Debug, Clone, Serialize, Deserialize, Default)]
11#[serde(rename_all = "camelCase")]
12pub struct Domain<'a> {
13 name: Cow<'a, str>,
15 version: Cow<'a, str>,
17}
18
19impl<'a> Domain<'a> {
20 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 pub fn name(&self) -> &str { self.name.as_ref() }
31 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#[derive(Debug, Clone, Serialize, Deserialize, Default)]
53#[serde(rename_all = "camelCase")]
54pub struct GetDomainsReturns<'a> {
55 domains: Vec<Domain<'a>>,
57}
58
59impl<'a> GetDomainsReturns<'a> {
60 pub fn builder(domains: Vec<Domain<'a>>) -> GetDomainsReturnsBuilder<'a> {
63 GetDomainsReturnsBuilder {
64 domains: domains,
65 }
66 }
67 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}