#[derive(Debug, Clone, PartialEq, Eq, Hash, Copy)]
pub enum Kind {
Audio,
MIDI,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn kind_audio_equality() {
assert_eq!(Kind::Audio, Kind::Audio);
assert_ne!(Kind::Audio, Kind::MIDI);
}
#[test]
fn kind_midi_equality() {
assert_eq!(Kind::MIDI, Kind::MIDI);
assert_ne!(Kind::MIDI, Kind::Audio);
}
#[test]
fn kind_clone() {
let audio = Kind::Audio;
let cloned = audio;
assert_eq!(audio, cloned);
}
#[test]
fn kind_copy() {
let audio = Kind::Audio;
let copied = audio;
assert_eq!(audio, copied);
}
#[test]
fn kind_debug_format() {
let audio = Kind::Audio;
let midi = Kind::MIDI;
assert!(format!("{:?}", audio).contains("Audio"));
assert!(format!("{:?}", midi).contains("MIDI"));
}
#[test]
fn kind_hash_consistency() {
use std::collections::HashSet;
let mut set = HashSet::new();
set.insert(Kind::Audio);
set.insert(Kind::MIDI);
set.insert(Kind::Audio);
assert_eq!(set.len(), 2);
}
}