pub struct TimeSignature { /* private fields */ }Expand description
Represents a time signature.
Internally, it stores the number of notes in a measure and the beat value.
Implementations§
Source§impl TimeSignature
impl TimeSignature
Sourcepub const COMMON_TIME: Self
pub const COMMON_TIME: Self
4/4 time signature
Sourcepub const fn new(notes: u64, beat_value: u64) -> Self
pub const fn new(notes: u64, beat_value: u64) -> Self
Create a new time signature. It takes the number of notes in a measure and the beat value.
§Examples
use note_pen::prelude::*;
let time_signature = TimeSignature::new(4, 4);
assert_eq!(time_signature, TimeSignature::COMMON_TIME);
let time_signature = TimeSignature::new(2, 2);
assert_eq!(time_signature, TimeSignature::CUT_TIME);Sourcepub const fn simple(beats: u64, value: PrimitiveDuration) -> Self
pub const fn simple(beats: u64, value: PrimitiveDuration) -> Self
Create a simple time signature.
Sourcepub const fn compound(beats: u64, value: PrimitiveDuration) -> Self
pub const fn compound(beats: u64, value: PrimitiveDuration) -> Self
Create a compound time signature.
§Examples
use note_pen::prelude::*;
// 6/8 time signature
let time_signature = TimeSignature::compound(2, PrimitiveDuration::EIGHTH);
let expected = TimeSignature::new(6, 8);
assert_eq!(time_signature, expected);Sourcepub const fn is_compound(&self) -> bool
pub const fn is_compound(&self) -> bool
Check if the time signature is compound.
§Examples
use note_pen::prelude::*;
let time_signature = TimeSignature::new(6, 8);
assert!(time_signature.is_compound());Sourcepub const fn is_simple(&self) -> bool
pub const fn is_simple(&self) -> bool
Check if the time signature is simple.
§Examples
use note_pen::prelude::*;
let time_signature = TimeSignature::new(4, 4);
assert!(time_signature.is_simple());
let time_signature = TimeSignature::new(5, 4);
assert!(time_signature.is_simple());Sourcepub const fn beats(&self) -> u64
pub const fn beats(&self) -> u64
Get the number of beats in a measure. For compound time signatures, it returns the number of dotted notes – the number of notes in a measure divided by 3.
§Examples
use note_pen::prelude::*;
let time_signature = TimeSignature::new(6, 8);
assert_eq!(time_signature.beats(), 2);
let time_signature = TimeSignature::new(4, 4);
assert_eq!(time_signature.beats(), 4);Sourcepub fn value(&self) -> PrimitiveDuration
pub fn value(&self) -> PrimitiveDuration
Get the beat value.
§Examples
use note_pen::prelude::*;
let time_signature = TimeSignature::new(6, 8);
assert_eq!(time_signature.value(), PrimitiveDuration::EIGHTH);
let time_signature = TimeSignature::new(4, 4);
assert_eq!(time_signature.value(), PrimitiveDuration::QUARTER);§Panics
It panics
if the beat value is invalid and PrimitiveDuration::try_from returns an error.
Trait Implementations§
Source§impl Clone for TimeSignature
impl Clone for TimeSignature
Source§fn clone(&self) -> TimeSignature
fn clone(&self) -> TimeSignature
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TimeSignature
impl Debug for TimeSignature
Source§impl PartialEq for TimeSignature
impl PartialEq for TimeSignature
Auto Trait Implementations§
impl Freeze for TimeSignature
impl RefUnwindSafe for TimeSignature
impl Send for TimeSignature
impl Sync for TimeSignature
impl Unpin for TimeSignature
impl UnwindSafe for TimeSignature
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
Mutably borrows from an owned value. Read more