Skip to main content

rgc_chart/models/generic/
chartinfo.rs

1use crate::wasm_bindgen;
2
3#[wasm_bindgen]
4#[derive(Debug, Clone)]
5pub struct ChartInfo {
6    #[wasm_bindgen(getter_with_clone)]
7    pub difficulty_name: String,
8    #[wasm_bindgen(getter_with_clone)]
9    pub od: f32,
10    #[wasm_bindgen(getter_with_clone)]
11    pub hp: f32,
12    #[wasm_bindgen(getter_with_clone)]
13    pub bg_path: String,
14    #[wasm_bindgen(getter_with_clone)]
15    pub video_path: String,
16    #[wasm_bindgen(getter_with_clone)]
17    pub song_path: String,
18    #[wasm_bindgen(getter_with_clone)]
19    pub audio_offset: i32,
20    #[wasm_bindgen(getter_with_clone)]
21    pub preview_time: i32,
22    #[wasm_bindgen(getter_with_clone)]
23    pub key_count: u8,
24}
25
26#[allow(clippy::too_many_arguments)]
27#[wasm_bindgen]
28impl ChartInfo {
29    pub fn new(
30        difficulty_name: String,
31        hp: f32,
32        od: f32,
33        bg_path: String,
34        video_path: String,
35        song_path: String,
36        audio_offset: i32,
37        preview_time: i32,
38        key_count: u8,
39    ) -> Self {
40        Self {
41            difficulty_name,
42            hp,
43            od,
44            video_path,
45            bg_path,
46            song_path,
47            audio_offset,
48            preview_time,
49            key_count,
50        }
51    }
52
53    pub fn empty() -> Self {
54        Self {
55            difficulty_name: String::with_capacity(20),
56            hp: 8.0,
57            od: 8.0,
58            bg_path: String::with_capacity(20),
59            video_path: String::with_capacity(20),
60            song_path: String::with_capacity(10),
61            audio_offset: 0,
62            preview_time: 0,
63            key_count: 4,
64        }
65    }
66}