Macro midly::stack_buffer

source ·
macro_rules! stack_buffer {
    {
        @impl_def {$($attr:meta)*} {$($pub:ident)?} {$name:ident} {$size:expr}
    } => { ... };
    {
        $(#[$attr:meta])*
        struct $name:ident([u8; $size:expr]);
    } => { ... };
    {
        $(#[$attr:meta])*
        pub struct $name:ident([u8; $size:expr]);
    } => { ... };
}
Expand description

Define a stack buffer type, suitable for use with MidiStream.

Usage

The stack_buffer! macro defines a buffer type, which can later be instatiated for use with a MidiStream.

midly::stack_buffer! {
    struct MyBuffer([u8; 12345]);
}

use midly::stream::MidiStream;
let stream = MidiStream::with_buffer(MyBuffer::new());

Buffers can have attributes, documentation, and be made public.

midly::stack_buffer! {
    /// A very small buffer.
    #[repr(C)]
    pub struct MyBuffer([u8; 16]);
}

use midly::stream::MidiStream;
let stream = MidiStream::<MyBuffer>::default();