rgc_chart/models/quaver/
sound.rs1use serde::{Deserialize, Serialize};
2use crate::utils::serde::trim_float;
3
4#[derive(Debug, Deserialize, Serialize)]
5pub struct AudioSample {
6 #[serde(rename = "Path")]
7 pub path: String,
8}
9
10#[derive(Debug, Deserialize, Serialize)]
11pub struct SoundEffect {
12 #[serde(rename = "StartTime", serialize_with = "trim_float")]
13 pub start_time: f32,
14
15 #[serde(rename = "Sample")]
16 pub sample: usize,
17
18 #[serde(rename = "Volume", skip_serializing_if = "is_full_volume")]
19 pub volume: u8,
20}
21
22fn is_full_volume(volume: &u8) -> bool {
23 *volume >= 100
24}
25
26#[derive(Debug, Deserialize, Serialize)]
27pub struct KeySound {
28 #[serde(rename = "Sample")]
29 pub sample: usize,
30
31 #[serde(rename = "Volume", skip_serializing_if = "is_full_volume")]
32 pub volume: u8,
33}