Skip to main content

stream

Macro stream 

Source
macro_rules! stream {
    ($($tt:tt)*) => { ... };
}
Expand description

TokenStream quasi-quoting macro.

This is not a replacement for quote::quote!. It’s slower and does not support variable interpolation. It is intended for cases where interpolation must be avoided entirely.

§Examples

use met::stream;
use quote::quote;

let a = stream! {
    impl MyTrait for MyStruct {}
};

let b = quote! {
    impl MyTrait for MyStruct {}
};

assert_stream_eq!(a, b);

When # is followed by an ident, quote! performs variable interpolation, but stream! does not.

use met::stream;
use quote::quote;

let variable = 5;

let a = stream! { # variable };
let b = quote! { # variable };

// Not equal, `stream!` doesn't interpolate!
assert_stream_ne!(a, b);