bms_rs/bms/model/metadata.rs
1//! This module introduces struct [`Metadata`], which manages data to organize BMS scores in a BMS player.
2
3use std::path::PathBuf;
4
5use crate::bms::prelude::*;
6
7#[derive(Debug, Default, Clone, PartialEq, Eq)]
8#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
9/// This aggregate manages data to organize BMS scores in a BMS player.
10pub struct Metadata {
11 /// The play style of the score.
12 pub player: Option<PlayerMode>,
13 /// The play level of the score.
14 pub play_level: Option<u8>,
15 /// The difficulty of the score.
16 pub difficulty: Option<u8>,
17 /// The email address of the author.
18 pub email: Option<String>,
19 /// The url of the author.
20 pub url: Option<String>,
21 /// The path to override the base path of the WAV file path.
22 /// This allows WAV files to be referenced relative to a different directory.
23 pub wav_path_root: Option<PathBuf>,
24 /// Divide property. `#DIVIDEPROP`
25 pub divide_prop: Option<String>,
26 /// Whether the score is the octave mode.
27 /// In octave mode, the chart may have different note arrangements or gameplay mechanics.
28 pub is_octave: bool,
29}