use std::fmt;
#[derive(Debug)]
pub enum MidiError {
NoInputPorts,
ConnectionFailed(String),
InvalidMapping(String),
}
impl fmt::Display for MidiError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
MidiError::NoInputPorts => write!(f, "No MIDI input ports found"),
MidiError::ConnectionFailed(msg) => write!(f, "MIDI connection failed: {}", msg),
MidiError::InvalidMapping(msg) => write!(f, "Invalid MIDI mapping: {}", msg),
}
}
}
impl std::error::Error for MidiError {}
pub type MidiResult<T> = Result<T, MidiError>;