#[repr(u8)]
#[cfg_attr(not(target_family = "wasm"), derive(PartialEq, Eq, Debug))]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[derive(Clone, Copy)]
pub enum Channel {
Pulse1 = 0,
Pulse2 = 1,
Triangle = 2,
Noise = 3,
}
impl From<u8> for Channel {
fn from(value: u8) -> Self {
match value {
0 => Self::Pulse1,
1 => Self::Pulse2,
2 => Self::Triangle,
3 => Self::Noise,
_ => panic!("unknown channel: {value}"),
}
}
}
impl Default for Channel {
fn default() -> Self {
Self::Pulse1
}
}