Macro test_tools::prelude::meta::braces_unwrap
source · macro_rules! braces_unwrap { ( $Callback : path, { $( $Src : tt )* } ) => { ... }; ( $Callback : path, $( $Src : tt )* ) => { ... }; ( $Callback : path where @SRC{ { $( $Src : tt )* } } ) => { ... }; ( $Callback : path where @SRC{ $( $Src : tt )* } ) => { ... }; ( $Callback : path where @Prefix{ { $( $Prefix : tt )* } } @Postfix{ { $( $Postfix : tt )* } } @SRC{ { $( $Src : tt )* } } ) => { ... }; ( $Callback : path where @Prefix{ { $( $Prefix : tt )* } } @Postfix{ { $( $Postfix : tt )* } } @SRC{ $( $Src : tt )* } ) => { ... }; ( $Callback : path where @Prefix{ { $( $Prefix : tt )* } } @Postfix{ $( $Postfix : tt )* } @SRC{ { $( $Src : tt )* } } ) => { ... }; ( $Callback : path where @Prefix{ { $( $Prefix : tt )* } } @Postfix{ $( $Postfix : tt )* } @SRC{ $( $Src : tt )* } ) => { ... }; ( $Callback : path where @Prefix{ $( $Prefix : tt )* } @Postfix{ { $( $Postfix : tt )* } } @SRC{ { $( $Src : tt )* } } ) => { ... }; ( $Callback : path where @Prefix{ $( $Prefix : tt )* } @Postfix{ { $( $Postfix : tt )* } } @SRC{ $( $Src : tt )* } ) => { ... }; ( $Callback : path where @Prefix{ $( $Prefix : tt )* } @Postfix{ $( $Postfix : tt )* } @SRC{ { $( $Src : tt )* } } ) => { ... }; ( $Callback : path where @Prefix{ $( $Prefix : tt )* } @Postfix{ $( $Postfix : tt )* } @SRC{ $( $Src : tt )* } ) => { ... }; ( $Callback : path where @Prefix{ { $( $Prefix : tt )* } } @SRC{ { $( $Src : tt )* } } ) => { ... }; ( $Callback : path where @Prefix{ { $( $Prefix : tt )* } } @SRC{ $( $Src : tt )* } ) => { ... }; ( $Callback : path where @Prefix{ $( $Prefix : tt )* } @SRC{ { $( $Src : tt )* } } ) => { ... }; ( $Callback : path where @Prefix{ $( $Prefix : tt )* } @SRC{ $( $Src : tt )* } ) => { ... }; ( $Callback : path where @Postfix{ { $( $Postfix : tt )* } } @SRC{ { $( $Src : tt )* } } ) => { ... }; ( $Callback : path where @Postfix{ { $( $Postfix : tt )* } } @SRC{ $( $Src : tt )* } ) => { ... }; ( $Callback : path where @Postfix{ $( $Postfix : tt )* } @SRC{ { $( $Src : tt )* } } ) => { ... }; ( $Callback : path where @Postfix{ $( $Postfix : tt )* } @SRC{ $( $Src : tt )* } ) => { ... }; }
Expand description
Unwrap braces of token tree and pass its content to the passed callback. If token tree in not braced then it passed to callback as is.
§Function-style sample
use for_each::*;
let ( a, b, c ) = ( 1, 2, 3 );
braces_unwrap!( dbg, { a, b, c } );
// generates :
// dbg!( a, b, c );
braces_unwrap!( dbg, a, b, c );
// generates :
// dbg!( a, b, c );
§Map-style sample
use for_each::*;
let ( prefix, a, b, c, postfix ) = ( "prefix", 1, 2, 3, "postfix" );
braces_unwrap!
(
dbg where
@Prefix{ prefix, }
@Postfix{ postfix }
@SRC{ { a, b, c, } }
);
// generates :
// dbg!( prefix, a, b, c, psotfix );
braces_unwrap!
(
dbg where
@Prefix{ prefix, }
@Postfix{ postfix }
@SRC{ a, b, c, }
);
// generates :
// dbg!( prefix, a, b, c, psotfix );