Enum tune::scala::KbmBuildError [−][src]
pub enum KbmBuildError {
FormalOctaveMissing,
MappingTooLarge,
}
Expand description
Error reported when building a Kbm
fails.
Variants
No formal octave parameter has been set.
The formal octave parameter is mandatory if at least one key is pushed.
Examples
// No key pushed. The mapping is linear and the formal octave parameter is optional.
let optional = Kbm::builder(Note::from_midi_number(0));
assert!(optional.build().is_ok());
// At least one key pushed. The formal octave parameter is mandatory.
let mandatory = Kbm::builder(Note::from_midi_number(0)).push_mapped_key(0);
assert_eq!(mandatory.build().unwrap_err(), KbmBuildError::FormalOctaveMissing);
There are too many items in this mapping.
// The number of items is below the threshold.
let mut below = Kbm::builder(Note::from_midi_number(62)).formal_octave(0);
for _ in 0..65535 {
below = below.push_mapped_key(0);
}
assert!(below.build().is_ok());
// The number of items is above the threshold.
let mut above = Kbm::builder(Note::from_midi_number(62)).formal_octave(0);
for _ in 0..65536 {
above = above.push_mapped_key(0);
}
assert_eq!(above.build().unwrap_err(), KbmBuildError::MappingTooLarge);
Trait Implementations
Performs the conversion.
Auto Trait Implementations
impl RefUnwindSafe for KbmBuildError
impl Send for KbmBuildError
impl Sync for KbmBuildError
impl Unpin for KbmBuildError
impl UnwindSafe for KbmBuildError
Blanket Implementations
Mutably borrows from an owned value. Read more