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}