rustenium_cdp_definitions/browser_protocol/performance_timeline/
command_builders.rs1use super::commands::*;
2impl Enable {
3 pub fn builder() -> EnableBuilder {
4 <EnableBuilder as Default>::default()
5 }
6}
7#[derive(Default, Clone)]
8pub struct EnableBuilder {
9 event_types: Option<Vec<String>>,
10}
11impl EnableBuilder {
12 pub fn event_type(mut self, event_type: impl Into<String>) -> Self {
13 let v = self.event_types.get_or_insert(Vec::new());
14 v.push(event_type.into());
15 self
16 }
17 pub fn event_types<I, S>(mut self, event_types: I) -> Self
18 where
19 I: IntoIterator<Item = S>,
20 S: Into<String>,
21 {
22 let v = self.event_types.get_or_insert(Vec::new());
23 for val in event_types {
24 v.push(val.into());
25 }
26 self
27 }
28 pub fn build(self) -> Result<Enable, String> {
29 Ok(Enable {
30 method: EnableMethod::Enable,
31 params: EnableParams {
32 event_types: self.event_types.ok_or_else(|| {
33 format!("Field `{}` is mandatory.", std::stringify!(event_types))
34 })?,
35 },
36 })
37 }
38}