Skip to main content

system_utils/
error.rs

1#![allow(unused_imports)]
2use crate::prelude::DynError;
3use macron::{Display, Error, From};
4
5/// The error instance
6#[derive(Debug, Display, Error, From)]
7pub enum Error {
8    Msg(String),
9
10    #[cfg(feature = "audio")]
11    AudioError(#[source] Box<AudioError>),
12
13    #[cfg(feature = "power")]
14    PowerError(#[source] Box<PowerError>),
15}
16
17/// The audio error
18#[cfg(feature = "audio")]
19#[derive(Debug, Display, Error, From)]
20pub enum AudioError {
21    #[display(fmt = "Audio devices not found")]
22    DevicesNotFound,
23
24    #[from(skip)]
25    #[display(fmt = "Set volume failed: {0}")]
26    SetVolume(DynError),
27
28    #[from(skip)]
29    #[display(fmt = "Get volume failed: {0}")]
30    GetVolume(DynError),
31
32    #[from(skip)]
33    #[display(fmt = "Get mute status failed: {0}")]
34    GetMute(DynError),
35
36    #[from(skip)]
37    #[display(fmt = "Get mute volume failed: {0}")]
38    SetMute(DynError),
39
40    #[display(fmt = "Unsupported operating system")]
41    UnsupportedOS,
42}
43
44#[cfg(feature = "power")]
45#[derive(Debug, Display, Error, From)]
46pub enum PowerError {
47    #[display(fmt = "Unsupported operating system")]
48    UnsupportedOS,
49}