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 pub
lic.
midly::stack_buffer! {
/// A very small buffer.
#[repr(C)]
pub struct MyBuffer([u8; 16]);
}
use midly::stream::MidiStream;
let stream = MidiStream::<MyBuffer>::default();