Trait midi2::FromUmp

source ·
pub trait FromUmp<T>: Sized {
    // Required method
    fn from_ump(other: T) -> Self;
}
Expand description

Convert a message from a Ump backing buffer to a Bytes backing buffer.

Note that in most cases this is a “lossy” conversion. Some fields in a Ump message are not represented in a Bytes message like group, for example.

use midi2::{FromUmp, Data, channel_voice1::NoteOn};

let ump_message = NoteOn::try_from(&[0x279E_753D_u32][..]).expect("Valid data");
let bytes_message = NoteOn::<[u8; 3]>::from_ump(ump_message);

assert_eq!(bytes_message.data(), &[0x9E, 0x75, 0x3D]);

Required Methods§

source

fn from_ump(other: T) -> Self

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<A: Ump, B: Bytes + BufferDefault + BufferMut + BufferResize> FromUmp<ChannelVoice1<A>> for ChannelVoice1<B>

source§

impl<A: Ump, B: Bytes + BufferDefault + BufferMut + BufferResize> FromUmp<SystemCommon<A>> for SystemCommon<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<ChannelPressure<A>> for ChannelPressure<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<ControlChange<A>> for ControlChange<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<KeyPressure<A>> for KeyPressure<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<NoteOff<A>> for NoteOff<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<NoteOn<A>> for NoteOn<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<PitchBend<A>> for PitchBend<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<ProgramChange<A>> for ProgramChange<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<Sysex7<A>> for Sysex7<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<ActiveSensing<A>> for ActiveSensing<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<Continue<A>> for Continue<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<Reset<A>> for Reset<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<SongPositionPointer<A>> for SongPositionPointer<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<SongSelect<A>> for SongSelect<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<Start<A>> for Start<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<Stop<A>> for Stop<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<TimeCode<A>> for TimeCode<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<TimingClock<A>> for TimingClock<B>

source§

impl<A: Ump, B: Bytes + BufferMut + BufferDefault + BufferResize> FromUmp<TuneRequest<A>> for TuneRequest<B>

source§

impl<const SIZE: usize, A: Ump> FromUmp<ChannelPressure<A>> for ChannelPressure<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<ControlChange<A>> for ControlChange<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<KeyPressure<A>> for KeyPressure<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<NoteOff<A>> for NoteOff<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<NoteOn<A>> for NoteOn<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<PitchBend<A>> for PitchBend<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<ProgramChange<A>> for ProgramChange<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<ActiveSensing<A>> for ActiveSensing<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<Continue<A>> for Continue<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<Reset<A>> for Reset<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<SongPositionPointer<A>> for SongPositionPointer<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<SongSelect<A>> for SongSelect<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<Start<A>> for Start<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<Stop<A>> for Stop<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<TimeCode<A>> for TimeCode<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<TimingClock<A>> for TimingClock<[u8; SIZE]>

source§

impl<const SIZE: usize, A: Ump> FromUmp<TuneRequest<A>> for TuneRequest<[u8; SIZE]>