pub struct BmsonInfo {Show 18 fields
pub title: String,
pub subtitle: String,
pub artist: String,
pub subartists: Vec<String>,
pub genre: String,
pub mode_hint: String,
pub chart_name: String,
pub level: u32,
pub init_bpm: FinF64,
pub judge_rank: FinF64,
pub total: FinF64,
pub back_image: Option<String>,
pub eyecatch_image: Option<String>,
pub title_image: Option<String>,
pub banner_image: Option<String>,
pub preview_music: Option<String>,
pub resolution: u64,
pub ln_type: LnMode,
}
bmson
only.Expand description
Header metadata of chart.
Fields§
§title: String
Self explanatory title.
subtitle: String
Self explanatory subtitle. Usually this is shown as a smaller text than title
.
artist: String
Author of the chart. It may multiple names such as Alice vs Bob
, Alice feat. Bob
and so on. But you should respect the value because it usually have special meaning.
subartists: Vec<String>
Other authors of the chart. This is useful for indexing and searching.
Value of the array has form of key:value
. The key
can be music
, vocal
, chart
, image
, movie
or other
. If it has no key
, you should treat as that key
equals to other
. The value may contains the spaces before and after key
and value
, so you should trim them.
§Example
"subartists": ["music:5argon", "music:encX", "chart:flicknote", "movie:5argon", "image:5argon"]
genre: String
Self explanatory genre.
mode_hint: String
Hint for layout lanes, e.g. “beat-7k”, “popn-5k”, “generic-nkeys”. Defaults to "beat-7k"
.
If you want to support many lane modes of BMS, you should check this to determine the layout for lanes. Also you can check all lane information in sound_channels
for strict implementation.
chart_name: String
Special chart name, e.g. “BEGINNER”, “NORMAL”, “HYPER”, “FOUR DIMENSIONS”.
level: u32
Self explanatory level number. It is usually set with subjective rating by the author.
init_bpm: FinF64
Initial BPM.
judge_rank: FinF64
Relative judge width in percentage. The variation amount may different by BMS player. Larger is easier.
total: FinF64
Relative life bar gain in percentage. The variation amount may different by BMS player. Larger is easier.
back_image: Option<String>
Background image file name. This should be displayed during the game play.
eyecatch_image: Option<String>
Eyecatch image file name. This should be displayed during the chart is loading.
title_image: Option<String>
Title image file name. This should be displayed before the game starts instead of title of the music.
Banner image file name. This should be displayed in music select or result scene. The aspect ratio of image is usually 15:4.
preview_music: Option<String>
Preview music file name. This should be played when this chart is selected in a music select scene.
resolution: u64
Numbers of pulse per quarter note in 4/4 measure. You must check this because it affects the actual seconds of PulseNumber
.
ln_type: LnMode
Beatoraja implementation of long note type.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for BmsonInfo
impl<'de> Deserialize<'de> for BmsonInfo
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for BmsonInfo
impl StructuralPartialEq for BmsonInfo
Auto Trait Implementations§
impl Freeze for BmsonInfo
impl RefUnwindSafe for BmsonInfo
impl Send for BmsonInfo
impl Sync for BmsonInfo
impl Unpin for BmsonInfo
impl UnwindSafe for BmsonInfo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);
Source§impl<T> SourceRangeMixinExt for T
impl<T> SourceRangeMixinExt for T
Source§fn into_wrapper<W>(
self,
wrapper: &SourceRangeMixin<W>,
) -> SourceRangeMixin<Self>where
Self: Sized,
fn into_wrapper<W>(
self,
wrapper: &SourceRangeMixin<W>,
) -> SourceRangeMixin<Self>where
Self: Sized,
SourceRangeMixin
with the same span as a wrapper.Source§fn into_wrapper_range(self, range: Range<usize>) -> SourceRangeMixin<Self>where
Self: Sized,
fn into_wrapper_range(self, range: Range<usize>) -> SourceRangeMixin<Self>where
Self: Sized,
SourceRangeMixin
with a given range.Source§fn into_wrapper_span(self, span: (usize, usize)) -> SourceRangeMixin<Self>where
Self: Sized,
fn into_wrapper_span(self, span: (usize, usize)) -> SourceRangeMixin<Self>where
Self: Sized,
SourceRangeMixin
with a given (start, end) span.