1#![allow(unused_imports)]
2use crate::prelude::DynError;
3use macron::{Display, Error, From};
4
5#[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#[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}