use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
use std::borrow::Cow;
pub type StreamHandle<'a> = Cow<'a, str>;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CloseParams<'a> {
handle: StreamHandle<'a>,
}
impl<'a> CloseParams<'a> {
pub fn builder(handle: impl Into<StreamHandle<'a>>) -> CloseParamsBuilder<'a> {
CloseParamsBuilder {
handle: handle.into(),
}
}
pub fn handle(&self) -> &StreamHandle<'a> { &self.handle }
}
pub struct CloseParamsBuilder<'a> {
handle: StreamHandle<'a>,
}
impl<'a> CloseParamsBuilder<'a> {
pub fn build(self) -> CloseParams<'a> {
CloseParams {
handle: self.handle,
}
}
}
impl<'a> CloseParams<'a> { pub const METHOD: &'static str = "IO.close"; }
impl<'a> crate::CdpCommand<'a> for CloseParams<'a> {
const METHOD: &'static str = "IO.close";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ReadParams<'a> {
handle: StreamHandle<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
size: Option<u64>,
}
impl<'a> ReadParams<'a> {
pub fn builder(handle: impl Into<StreamHandle<'a>>) -> ReadParamsBuilder<'a> {
ReadParamsBuilder {
handle: handle.into(),
offset: None,
size: None,
}
}
pub fn handle(&self) -> &StreamHandle<'a> { &self.handle }
pub fn offset(&self) -> Option<i32> { self.offset }
pub fn size(&self) -> Option<u64> { self.size }
}
pub struct ReadParamsBuilder<'a> {
handle: StreamHandle<'a>,
offset: Option<i32>,
size: Option<u64>,
}
impl<'a> ReadParamsBuilder<'a> {
pub fn offset(mut self, offset: i32) -> Self { self.offset = Some(offset); self }
pub fn size(mut self, size: u64) -> Self { self.size = Some(size); self }
pub fn build(self) -> ReadParams<'a> {
ReadParams {
handle: self.handle,
offset: self.offset,
size: self.size,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ReadReturns<'a> {
#[serde(skip_serializing_if = "Option::is_none", rename = "base64Encoded")]
base64_encoded: Option<bool>,
data: Cow<'a, str>,
eof: bool,
}
impl<'a> ReadReturns<'a> {
pub fn builder(data: impl Into<Cow<'a, str>>, eof: bool) -> ReadReturnsBuilder<'a> {
ReadReturnsBuilder {
base64_encoded: None,
data: data.into(),
eof: eof,
}
}
pub fn base64_encoded(&self) -> Option<bool> { self.base64_encoded }
pub fn data(&self) -> &str { self.data.as_ref() }
pub fn eof(&self) -> bool { self.eof }
}
pub struct ReadReturnsBuilder<'a> {
base64_encoded: Option<bool>,
data: Cow<'a, str>,
eof: bool,
}
impl<'a> ReadReturnsBuilder<'a> {
pub fn base64_encoded(mut self, base64_encoded: bool) -> Self { self.base64_encoded = Some(base64_encoded); self }
pub fn build(self) -> ReadReturns<'a> {
ReadReturns {
base64_encoded: self.base64_encoded,
data: self.data,
eof: self.eof,
}
}
}
impl<'a> ReadParams<'a> { pub const METHOD: &'static str = "IO.read"; }
impl<'a> crate::CdpCommand<'a> for ReadParams<'a> {
const METHOD: &'static str = "IO.read";
type Response = ReadReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ResolveBlobParams<'a> {
#[serde(rename = "objectId")]
object_id: crate::runtime::RemoteObjectId<'a>,
}
impl<'a> ResolveBlobParams<'a> {
pub fn builder(object_id: crate::runtime::RemoteObjectId<'a>) -> ResolveBlobParamsBuilder<'a> {
ResolveBlobParamsBuilder {
object_id: object_id,
}
}
pub fn object_id(&self) -> &crate::runtime::RemoteObjectId<'a> { &self.object_id }
}
pub struct ResolveBlobParamsBuilder<'a> {
object_id: crate::runtime::RemoteObjectId<'a>,
}
impl<'a> ResolveBlobParamsBuilder<'a> {
pub fn build(self) -> ResolveBlobParams<'a> {
ResolveBlobParams {
object_id: self.object_id,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ResolveBlobReturns<'a> {
uuid: Cow<'a, str>,
}
impl<'a> ResolveBlobReturns<'a> {
pub fn builder(uuid: impl Into<Cow<'a, str>>) -> ResolveBlobReturnsBuilder<'a> {
ResolveBlobReturnsBuilder {
uuid: uuid.into(),
}
}
pub fn uuid(&self) -> &str { self.uuid.as_ref() }
}
pub struct ResolveBlobReturnsBuilder<'a> {
uuid: Cow<'a, str>,
}
impl<'a> ResolveBlobReturnsBuilder<'a> {
pub fn build(self) -> ResolveBlobReturns<'a> {
ResolveBlobReturns {
uuid: self.uuid,
}
}
}
impl<'a> ResolveBlobParams<'a> { pub const METHOD: &'static str = "IO.resolveBlob"; }
impl<'a> crate::CdpCommand<'a> for ResolveBlobParams<'a> {
const METHOD: &'static str = "IO.resolveBlob";
type Response = ResolveBlobReturns<'a>;
}