Skip to main content

rgc_chart/models/generic/
chart.rs

1use crate::models::generic::{
2    chartinfo::ChartInfo, hitobjects::HitObjects, metadata::Metadata, sound::SoundBank,
3    timing_points::TimingPoints,
4};
5use crate::wasm_bindgen;
6
7// TODO: maybe don't use getter_with_clone?
8#[wasm_bindgen]
9#[derive(Debug, Clone)]
10pub struct GenericManiaChart {
11    #[wasm_bindgen(getter_with_clone)]
12    pub metadata: Metadata,
13    #[wasm_bindgen(getter_with_clone)]
14    pub chartinfo: ChartInfo,
15    #[wasm_bindgen(getter_with_clone)]
16    pub timing_points: TimingPoints,
17    #[wasm_bindgen(getter_with_clone)]
18    pub hitobjects: HitObjects,
19    #[wasm_bindgen(getter_with_clone)]
20    pub soundbank: Option<SoundBank>,
21}
22
23impl GenericManiaChart {
24    pub(crate) fn new(
25        metadata: Metadata,
26        chartinfo: ChartInfo,
27        timing_points: TimingPoints,
28        hitobjects: HitObjects,
29        soundbank: Option<SoundBank>,
30    ) -> Self {
31        Self {
32            metadata,
33            chartinfo,
34            timing_points,
35            hitobjects,
36            soundbank,
37        }
38    }
39}