1#[derive(Debug, Clone, PartialEq, Eq, Hash, Copy)]
2pub enum Kind {
3 Audio,
4 MIDI,
5}
6
7#[cfg(test)]
8mod tests {
9 use super::*;
10
11 #[test]
12 fn kind_audio_equality() {
13 assert_eq!(Kind::Audio, Kind::Audio);
14 assert_ne!(Kind::Audio, Kind::MIDI);
15 }
16
17 #[test]
18 fn kind_midi_equality() {
19 assert_eq!(Kind::MIDI, Kind::MIDI);
20 assert_ne!(Kind::MIDI, Kind::Audio);
21 }
22
23 #[test]
24 fn kind_clone() {
25 let audio = Kind::Audio;
26 let cloned = audio;
27 assert_eq!(audio, cloned);
28 }
29
30 #[test]
31 fn kind_copy() {
32 let audio = Kind::Audio;
33 let copied = audio;
34 assert_eq!(audio, copied);
35 }
36
37 #[test]
38 fn kind_debug_format() {
39 let audio = Kind::Audio;
40 let midi = Kind::MIDI;
41 assert!(format!("{:?}", audio).contains("Audio"));
42 assert!(format!("{:?}", midi).contains("MIDI"));
43 }
44
45 #[test]
46 fn kind_hash_consistency() {
47 use std::collections::HashSet;
48
49 let mut set = HashSet::new();
50 set.insert(Kind::Audio);
51 set.insert(Kind::MIDI);
52 set.insert(Kind::Audio); assert_eq!(set.len(), 2);
55 }
56}