Struct RawShortMessage

Source
pub struct RawShortMessage(/* private fields */);
Expand description

A short message implemented as a tuple of bytes.

The struct’s size in memory is currently 3 bytes.

§Example

use helgoboss_midi::{
    Channel, KeyNumber, MessageMainCategory, MessageSuperType, RawShortMessage, ShortMessage,
    ShortMessageFactory, ShortMessageType, U7,
};

let msg = RawShortMessage::note_on(Channel::new(5), KeyNumber::new(64), U7::new(123));
assert_eq!(core::mem::size_of_val(&msg), 3);
assert_eq!(msg.status_byte(), 149);
assert_eq!(msg.data_byte_1().get(), 64);
assert_eq!(msg.data_byte_2().get(), 123);
assert_eq!(msg.r#type(), ShortMessageType::NoteOn);
assert_eq!(msg.super_type(), MessageSuperType::ChannelVoice);
assert_eq!(msg.main_category(), MessageMainCategory::Channel);
assert_eq!(msg.channel(), Some(Channel::new(5)));
assert_eq!(msg.key_number(), Some(KeyNumber::new(64)));
assert_eq!(msg.velocity(), Some(U7::new(123)));
assert_eq!(msg.controller_number(), None);
assert_eq!(msg.control_value(), None);

Trait Implementations§

Source§

impl Clone for RawShortMessage

Source§

fn clone(&self) -> RawShortMessage

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RawShortMessage

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<RawShortMessage> for (u8, U7, U7)

Source§

fn from(original: RawShortMessage) -> Self

Converts to this type from the input type.
Source§

impl Hash for RawShortMessage

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for RawShortMessage

Source§

fn eq(&self, other: &RawShortMessage) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl ShortMessage for RawShortMessage

Source§

fn status_byte(&self) -> u8

Returns the status byte.
Source§

fn data_byte_1(&self) -> U7

Returns the first data byte.
Source§

fn data_byte_2(&self) -> U7

Returns the second data byte.
Source§

fn to_bytes(&self) -> (u8, U7, U7)

Returns the status byte and the two data bytes as a tuple. Read more
Source§

fn to_other<O: ShortMessageFactory>(&self) -> O

Converts this message to a short message of another type.
Source§

fn to_structured(&self) -> StructuredShortMessage

Converts this message to a StructuredShortMessage, which is ideal for matching.
Source§

fn type(&self) -> ShortMessageType

Returns the type of this message.
Source§

fn super_type(&self) -> MessageSuperType

Returns the super type of this message.
Source§

fn main_category(&self) -> MessageMainCategory

Returns the main category of this message.
Source§

fn is_note_on(&self) -> bool

Returns whether this message is a note-on in a practical sense. That means, it also returns false if the message type is NoteOn but the velocity is zero.
Source§

fn is_note_off(&self) -> bool

Returns whether this message is a note-off in a practical sense. That means, it also returns true if the message type is NoteOn but the velocity is zero.
Source§

fn is_note(&self) -> bool

Returns whether this message is a note-on or note-off.
Source§

fn channel(&self) -> Option<Channel>

Returns the channel of this message if applicable.
Source§

fn key_number(&self) -> Option<KeyNumber>

Returns the key number of this message if applicable.
Source§

fn velocity(&self) -> Option<U7>

Returns the velocity of this message if applicable.
Source§

fn controller_number(&self) -> Option<ControllerNumber>

Returns the controller number of this message if applicable.
Source§

fn control_value(&self) -> Option<U7>

Returns the control value of this message if applicable.
Source§

fn program_number(&self) -> Option<U7>

Returns the program number of this message if applicable.
Source§

fn pressure_amount(&self) -> Option<U7>

Returns the pressure amount of this message if applicable.
Source§

fn pitch_bend_value(&self) -> Option<U14>

Returns the pitch bend value of this message if applicable.
Source§

impl ShortMessageFactory for RawShortMessage

Source§

unsafe fn from_bytes_unchecked(bytes: (u8, U7, U7)) -> Self

Creates a MIDI message from the given bytes without checking the status byte. The tuple consists of the status byte, data byte 1 and data byte 2 in exactly this order. Read more
Source§

fn from_bytes(bytes: (u8, U7, U7)) -> Result<Self, FromBytesError>

Creates a MIDI message from the given bytes. The tuple consists of the status byte, data byte 1 and data byte 2 in exactly this order. Read more
Source§

fn from_other(msg: &impl ShortMessage) -> Self

Creates this message from a MIDI message of another type.
Source§

fn channel_message( type: ShortMessageType, channel: Channel, data_1: U7, data_2: U7, ) -> Self

Creates a Channel message. Read more
Source§

fn system_common_message(type: ShortMessageType, data_1: U7, data_2: U7) -> Self

Creates a System Common message. Read more
Source§

fn system_real_time_message(type: ShortMessageType) -> Self

Creates a System Real Time message. Read more
Source§

fn note_on(channel: Channel, key_number: KeyNumber, velocity: U7) -> Self

Creates a Note On message.
Source§

fn note_off(channel: Channel, key_number: KeyNumber, velocity: U7) -> Self

Creates a Note Off message.
Source§

fn control_change( channel: Channel, controller_number: ControllerNumber, control_value: U7, ) -> Self

Creates a Control Change message.
Source§

fn program_change(channel: Channel, program_number: U7) -> Self

Creates a Program Change message.
Source§

fn polyphonic_key_pressure( channel: Channel, key_number: KeyNumber, pressure_amount: U7, ) -> Self

Creates a Polyphonic Key Pressure message.
Source§

fn channel_pressure(channel: Channel, pressure_amount: U7) -> Self

Creates a Channel Pressure message.
Source§

fn pitch_bend_change(channel: Channel, pitch_bend_value: U14) -> Self

Creates a Pitch Bend Change message.
Source§

fn system_exclusive_start() -> Self

Creates the start of a System Exclusive message.
Source§

fn time_code_quarter_frame(frame: TimeCodeQuarterFrame) -> Self

Creates a MIDI Time Code Quarter Frame message.
Source§

fn song_position_pointer(position: U14) -> Self

Creates a Song Position Pointer message.
Source§

fn song_select(song_number: U7) -> Self

Creates a Song Select message.
Source§

fn tune_request() -> Self

Creates a Tune Request message.
Source§

fn system_exclusive_end() -> Self

Creates the end of a System Exclusive message.
Source§

fn timing_clock() -> Self

Creates a Timing Clock message.
Source§

fn start() -> Self

Creates a Start message.
Source§

fn continue() -> Self

Creates a Continue message.
Source§

fn stop() -> Self

Creates a Stop message.
Source§

fn active_sensing() -> Self

Creates an Active Sensing message.
Source§

fn system_reset() -> Self

Creates a System Reset message.
Source§

impl TryFrom<(u8, U7, U7)> for RawShortMessage

Source§

type Error = FromBytesError

The type returned in the event of a conversion error.
Source§

fn try_from(value: (u8, U7, U7)) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl Copy for RawShortMessage

Source§

impl Eq for RawShortMessage

Source§

impl StructuralPartialEq for RawShortMessage

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.