use std::fmt;
#[derive(Debug)]
pub enum Error {
StartFailed,
AcquireFailed,
ConfigureFailed,
GenerateConfigFailed,
InvalidConfig,
CreateRequestFailed,
QueueRequestFailed,
CameraStartFailed,
CameraStopFailed,
AllocateFailed,
FreeFailed,
AddBufferFailed,
IndexOutOfRange,
CameraNotFound,
ControlGetFailed,
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Error::StartFailed => write!(f, "failed to start camera manager"),
Error::AcquireFailed => write!(f, "failed to acquire camera"),
Error::ConfigureFailed => write!(f, "failed to configure camera"),
Error::GenerateConfigFailed => {
write!(f, "failed to generate configuration")
}
Error::InvalidConfig => write!(f, "invalid configuration"),
Error::CreateRequestFailed => write!(f, "failed to create request"),
Error::QueueRequestFailed => write!(f, "failed to queue request"),
Error::CameraStartFailed => write!(f, "failed to start camera"),
Error::CameraStopFailed => write!(f, "failed to stop camera"),
Error::AllocateFailed => write!(f, "failed to allocate buffers"),
Error::FreeFailed => write!(f, "failed to free buffers"),
Error::AddBufferFailed => {
write!(f, "failed to add buffer to request")
}
Error::IndexOutOfRange => write!(f, "index out of range"),
Error::CameraNotFound => write!(f, "camera not found"),
Error::ControlGetFailed => {
write!(f, "failed to get control value")
}
}
}
}
impl std::error::Error for Error {}
pub type Result<T> = std::result::Result<T, Error>;