TryRebufferFrom

Trait TryRebufferFrom 

Source
pub trait TryRebufferFrom<T>: Sized {
    // Required method
    fn try_rebuffer_from(value: T) -> Result<Self, BufferOverflow>;
}
Expand description

Attempt to convert a generic message from one buffer specialisation to another.

The conversion may fail with a BufferOverflow error if the target message representation does not fit all of the message data.

use midi2::{TryRebufferFrom, sysex7::Sysex7};

let borrowed: Sysex7<&[u32]> = Sysex7::try_from(&[
    0x3016_0001,
    0x0203_0405,
    0x3035_0607,
    0x0809_0A00,
][..]).expect("Valid data");

assert!(Sysex7::<[u32; 4]>::try_rebuffer_from(borrowed.clone()).is_ok());
assert!(Sysex7::<[u32; 2]>::try_rebuffer_from(borrowed.clone()).is_err());

Required Methods§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<A: Bytes, B: Bytes + TryFromBuffer<A>> TryRebufferFrom<BytesMessage<A>> for BytesMessage<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<ChannelVoice2<A>> for ChannelVoice2<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<UmpMessage<A>> for UmpMessage<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<FlexData<A>> for FlexData<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<UmpStream<A>> for UmpStream<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<Utility<A>> for Utility<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<AssignableController<A>> for AssignableController<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<AssignablePerNoteController<A>> for AssignablePerNoteController<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<ChannelPitchBend<A>> for ChannelPitchBend<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<ChannelPressure<A>> for midi2::channel_voice2::ChannelPressure<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<ControlChange<A>> for midi2::channel_voice2::ControlChange<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<KeyPressure<A>> for midi2::channel_voice2::KeyPressure<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<NoteOff<A>> for midi2::channel_voice2::NoteOff<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<NoteOn<A>> for midi2::channel_voice2::NoteOn<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<PerNoteManagement<A>> for PerNoteManagement<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<PerNotePitchBend<A>> for PerNotePitchBend<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<ProgramChange<A>> for midi2::channel_voice2::ProgramChange<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<RegisteredController<A>> for RegisteredController<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<RegisteredPerNoteController<A>> for RegisteredPerNoteController<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<RelativeAssignableController<A>> for RelativeAssignableController<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<RelativeRegisteredController<A>> for RelativeRegisteredController<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<AccompanyingPerformerName<A>> for AccompanyingPerformerName<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<ArrangerName<A>> for ArrangerName<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<ComposerName<A>> for ComposerName<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<CompositionName<A>> for CompositionName<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<CopyrightNotice<A>> for CopyrightNotice<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<LyricistName<A>> for LyricistName<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<Lyrics<A>> for Lyrics<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<LyricsLanguage<A>> for LyricsLanguage<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<MidiClipName<A>> for MidiClipName<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<PrimaryPerformerName<A>> for PrimaryPerformerName<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<ProjectName<A>> for ProjectName<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<PublisherName<A>> for PublisherName<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<RecordingDate<A>> for RecordingDate<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<RecordingLocation<A>> for RecordingLocation<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<Ruby<A>> for Ruby<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<RubyLanguage<A>> for RubyLanguage<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<SetChordName<A>> for SetChordName<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<SetKeySignature<A>> for SetKeySignature<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<SetMetronome<A>> for SetMetronome<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<SetTempo<A>> for SetTempo<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<SetTimeSignature<A>> for SetTimeSignature<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<UnknownMetadataText<A>> for UnknownMetadataText<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<UnknownPerformanceText<A>> for UnknownPerformanceText<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<Sysex8<A>> for Sysex8<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<DeviceIdentity<A>> for DeviceIdentity<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<EndOfClip<A>> for EndOfClip<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<EndpointDiscovery<A>> for EndpointDiscovery<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<EndpointInfo<A>> for EndpointInfo<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<EndpointName<A>> for EndpointName<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<FunctionBlockDiscovery<A>> for FunctionBlockDiscovery<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<FunctionBlockInfo<A>> for FunctionBlockInfo<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<FunctionBlockName<A>> for FunctionBlockName<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<ProductInstanceId<A>> for ProductInstanceId<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<StartOfClip<A>> for StartOfClip<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<StreamConfigurationNotification<A>> for StreamConfigurationNotification<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<StreamConfigurationRequest<A>> for StreamConfigurationRequest<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<Clock<A>> for Clock<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<DeltaClockstamp<A>> for DeltaClockstamp<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<DeltaClockstampTpq<A>> for DeltaClockstampTpq<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<NoOp<A>> for NoOp<B>

Source§

impl<A: Ump, B: Ump + TryFromBuffer<A>> TryRebufferFrom<Timestamp<A>> for Timestamp<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<ChannelVoice1<A>> for ChannelVoice1<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<SystemCommon<A>> for SystemCommon<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<ChannelPressure<A>> for midi2::channel_voice1::ChannelPressure<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<ControlChange<A>> for midi2::channel_voice1::ControlChange<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<KeyPressure<A>> for midi2::channel_voice1::KeyPressure<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<NoteOff<A>> for midi2::channel_voice1::NoteOff<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<NoteOn<A>> for midi2::channel_voice1::NoteOn<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<PitchBend<A>> for PitchBend<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<ProgramChange<A>> for midi2::channel_voice1::ProgramChange<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<Sysex7<A>> for Sysex7<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<ActiveSensing<A>> for ActiveSensing<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<Continue<A>> for Continue<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<Reset<A>> for Reset<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<SongPositionPointer<A>> for SongPositionPointer<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<SongSelect<A>> for SongSelect<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<Start<A>> for Start<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<Stop<A>> for Stop<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<TimeCode<A>> for TimeCode<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<TimingClock<A>> for TimingClock<B>

Source§

impl<U: Unit, A: Buffer<Unit = U>, B: Buffer<Unit = U> + TryFromBuffer<A>> TryRebufferFrom<TuneRequest<A>> for TuneRequest<B>

Source§

impl<const VERSION: u8, A: Bytes, B: Bytes + TryFromBuffer<A>> TryRebufferFrom<DiscoveryQuery<VERSION, A>> for DiscoveryQuery<VERSION, B>