use thiserror::Error;
#[derive(Error, Debug)]
pub enum Error {
#[error("Failed to attach")]
DeviceAttachError,
#[error("Failed to lookup device")]
DeviceLookupFailed,
#[error("Failed to detach the current session")]
SessionDetachError,
#[error("Failed to create the script")]
ScriptCreationError,
#[error("Failed to load the script")]
LoadingFailed,
#[error("Failed to unload the script")]
UnloadingFailed,
#[error("Failed to convert the string into CString")]
CStringFailed,
#[error("Failed to inject library ({code}) {message}")]
InjectFailed {
code: i32,
message: String,
},
#[error("Failed to query device system parameters ({code}) {message}")]
DeviceQuerySystemParametersFailed {
code: i32,
message: String,
},
#[error("Failed to spawn program ({code}) {message}")]
SpawnFailed {
code: i32,
message: String,
},
#[error("Failed to resume ({code}) {message}")]
ResumeFailed {
code: i32,
message: String,
},
#[error("Failed to kill PID ({code}) {message}")]
KillFailed {
code: i32,
message: String,
},
#[error("Unexpected RPC message received.")]
RpcUnexpectedMessage,
#[error("Error on the JavaScript side: {message}")]
RpcJsError {
message: String,
},
}