concinnity_asset/
audio_bus.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
9#[serde(rename_all = "lowercase")]
10pub enum AudioBus {
11 Music,
13 Sfx,
15 Voice,
17}
18
19#[cfg(test)]
20mod tests {
21 use super::*;
22
23 #[test]
24 fn bus_names_parse_lowercase() {
25 for (name, bus) in [
26 ("\"music\"", AudioBus::Music),
27 ("\"sfx\"", AudioBus::Sfx),
28 ("\"voice\"", AudioBus::Voice),
29 ] {
30 let parsed: AudioBus = serde_json::from_str(name).unwrap();
31 assert_eq!(parsed, bus);
32 assert_eq!(serde_json::to_string(&bus).unwrap(), name);
33 }
34 }
35
36 #[test]
37 fn bus_round_trips_through_postcard() {
38 for bus in [AudioBus::Music, AudioBus::Sfx, AudioBus::Voice] {
39 let bytes = postcard::to_allocvec(&bus).unwrap();
40 let back: AudioBus = postcard::from_bytes(&bytes).unwrap();
41 assert_eq!(back, bus);
42 }
43 }
44}