media_core/
error.rs

1use thiserror::Error;
2
3#[derive(Clone, Debug, Error)]
4pub enum Error {
5    #[error("Failed: {0}")]
6    Failed(String),
7    #[error("Invalid: {0}")]
8    Invalid(String),
9    #[error("Again: {0}")]
10    Again(String),
11    #[error("Canceled: {0}")]
12    Canceled(String),
13    #[error("Creation failed: {0}")]
14    CreationFailed(String),
15    #[error("Invalid parameter: {0} {1}")]
16    InvalidParameter(String, String),
17    #[error("Not implemented")]
18    NotImplemented,
19    #[error("Not found: {0}")]
20    NotFound(String),
21    #[error("Unsupported: {0}")]
22    Unsupported(String),
23    #[error("Initialization failed: {0}")]
24    InitializationFailed(String),
25    #[error("Open failed: {0}")]
26    OpenFailed(String),
27    #[error("Close failed: {0}")]
28    CloseFailed(String),
29    #[error("Start failed: {0}")]
30    StartFailed(String),
31    #[error("Stop failed: {0}")]
32    StopFailed(String),
33    #[error("Not running: {0}")]
34    NotRunning(String),
35    #[error("Get failed: {0}")]
36    GetFailed(String),
37    #[error("Set failed: {0}")]
38    SetFailed(String),
39    #[error("Read failed: {0}")]
40    ReadFailed(String),
41    #[error("Write failed: {0}")]
42    WriteFailed(String),
43}
44
45#[macro_export]
46macro_rules! invalid_param_error {
47    ($param:expr) => {
48        Error::InvalidParameter(stringify!($param).to_string(), format!("{:?}", $param).to_string())
49    };
50}
51
52#[macro_export]
53macro_rules! none_param_error {
54    ($param:expr) => {
55        Error::InvalidParameter(stringify!($param).to_string(), stringify!(None).to_string())
56    };
57}
58
59#[macro_export]
60macro_rules! not_found_error {
61    ($param:expr) => {
62        Error::NotFound(format!("{:?}", $param).to_string())
63    };
64}
65
66#[macro_export]
67macro_rules! unsupported_error {
68    ($param:expr) => {
69        Error::Unsupported(format!("{:?}", $param).to_string())
70    };
71}