rustenium-bidi-definitions 0.1.1

Generated WebDriver BiDi protocol type definitions for Rustenium
Documentation
use super::commands::*;
impl PerformActions {
    pub fn builder() -> PerformActionsBuilder {
        <PerformActionsBuilder as Default>::default()
    }
}
#[derive(Default, Clone)]
pub struct PerformActionsBuilder {
    context: Option<crate::browsing_context::types::BrowsingContext>,
    actions: Option<Vec<super::types::SourceActions>>,
}
impl PerformActionsBuilder {
    pub fn context(
        mut self,
        context: impl Into<crate::browsing_context::types::BrowsingContext>,
    ) -> Self {
        self.context = Some(context.into());
        self
    }
    pub fn action(mut self, action: impl Into<super::types::SourceActions>) -> Self {
        let v = self.actions.get_or_insert(Vec::new());
        v.push(action.into());
        self
    }
    pub fn actions<I, S>(mut self, actions: I) -> Self
    where
        I: IntoIterator<Item = S>,
        S: Into<super::types::SourceActions>,
    {
        let v = self.actions.get_or_insert(Vec::new());
        for val in actions {
            v.push(val.into());
        }
        self
    }
    pub fn build(self) -> Result<PerformActions, String> {
        Ok(PerformActions {
            method: PerformActionsMethod::PerformActions,
            params: PerformActionsParams {
                context: self
                    .context
                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(context)))?,
                actions: self
                    .actions
                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(actions)))?,
            },
        })
    }
}
impl ReleaseActions {
    pub fn builder() -> ReleaseActionsBuilder {
        <ReleaseActionsBuilder as Default>::default()
    }
}
#[derive(Default, Clone)]
pub struct ReleaseActionsBuilder {
    context: Option<crate::browsing_context::types::BrowsingContext>,
}
impl ReleaseActionsBuilder {
    pub fn context(
        mut self,
        context: impl Into<crate::browsing_context::types::BrowsingContext>,
    ) -> Self {
        self.context = Some(context.into());
        self
    }
    pub fn build(self) -> Result<ReleaseActions, String> {
        Ok(ReleaseActions {
            method: ReleaseActionsMethod::ReleaseActions,
            params: ReleaseActionsParams {
                context: self
                    .context
                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(context)))?,
            },
        })
    }
}
impl SetFiles {
    pub fn builder() -> SetFilesBuilder {
        <SetFilesBuilder as Default>::default()
    }
}
#[derive(Default, Clone)]
pub struct SetFilesBuilder {
    context: Option<crate::browsing_context::types::BrowsingContext>,
    element: Option<crate::script::types::SharedReference>,
    files: Option<Vec<String>>,
}
impl SetFilesBuilder {
    pub fn context(
        mut self,
        context: impl Into<crate::browsing_context::types::BrowsingContext>,
    ) -> Self {
        self.context = Some(context.into());
        self
    }
    pub fn element(mut self, element: impl Into<crate::script::types::SharedReference>) -> Self {
        self.element = Some(element.into());
        self
    }
    pub fn file(mut self, file: impl Into<String>) -> Self {
        let v = self.files.get_or_insert(Vec::new());
        v.push(file.into());
        self
    }
    pub fn files<I, S>(mut self, files: I) -> Self
    where
        I: IntoIterator<Item = S>,
        S: Into<String>,
    {
        let v = self.files.get_or_insert(Vec::new());
        for val in files {
            v.push(val.into());
        }
        self
    }
    pub fn build(self) -> Result<SetFiles, String> {
        Ok(SetFiles {
            method: SetFilesMethod::SetFiles,
            params: SetFilesParams {
                context: self
                    .context
                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(context)))?,
                element: self
                    .element
                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(element)))?,
                files: self
                    .files
                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(files)))?,
            },
        })
    }
}