use serde::{Deserialize, Serialize};
use crate::model::common::{Extensible, JsUint};
#[derive(Debug, Serialize, Deserialize)]
pub struct ErrorResponse {
#[serde(rename = "type")]
response_type: String,
#[serde(skip_serializing_if = "Option::is_none")]
id: Option<JsUint>,
error: ErrorCode,
message: String,
#[serde(skip_serializing_if = "Option::is_none")]
stacktrace: Option<String>,
#[serde(flatten)]
extensible: Extensible,
}
impl ErrorResponse {
pub fn new(
response_type: String,
id: Option<JsUint>,
error: ErrorCode,
message: String,
stacktrace: Option<String>,
extensible: Extensible,
) -> Self {
Self {
response_type,
id,
error,
message,
stacktrace,
extensible,
}
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Clone)]
pub enum ErrorCode {
#[serde(rename = "invalid argument")]
InvalidArgument,
#[serde(rename = "invalid selector")]
InvalidSelector,
#[serde(rename = "invalid session id")]
InvalidSessionId,
#[serde(rename = "invalid web extension")]
InvalidWebExtension,
#[serde(rename = "move target out of bounds")]
MoveTargetOutOfBounds,
#[serde(rename = "no such alert")]
NoSuchAlert,
#[serde(rename = "no such network collector")]
NoSuchNetworkCollector,
#[serde(rename = "no such element")]
NoSuchElement,
#[serde(rename = "no such frame")]
NoSuchFrame,
#[serde(rename = "no such handle")]
NoSuchHandle,
#[serde(rename = "no such history entry")]
NoSuchHistoryEntry,
#[serde(rename = "no such intercept")]
NoSuchIntercept,
#[serde(rename = "no such network data")]
NoSuchNetworkData,
#[serde(rename = "no such node")]
NoSuchNode,
#[serde(rename = "no such request")]
NoSuchRequest,
#[serde(rename = "no such script")]
NoSuchScript,
#[serde(rename = "no such storage partition")]
NoSuchStoragePartition,
#[serde(rename = "no such user context")]
NoSuchUserContext,
#[serde(rename = "no such web extension")]
NoSuchWebExtension,
#[serde(rename = "session not created")]
SessionNotCreated,
#[serde(rename = "unable to capture screen")]
UnableToCaptureScreen,
#[serde(rename = "unable to close browser")]
UnableToCloseBrowser,
#[serde(rename = "unable to set cookie")]
UnableToSetCookie,
#[serde(rename = "unable to set file input")]
UnableToSetFileInput,
#[serde(rename = "unavailable network data")]
UnavailableNetworkData,
#[serde(rename = "underspecified storage partition")]
UnderspecifiedStoragePartition,
#[serde(rename = "unknown command")]
UnknownCommand,
#[serde(rename = "unknown error")]
UnknownError,
#[serde(rename = "unsupported operation")]
UnsupportedOperation,
}