Macro iter_print

Source
macro_rules! iter_print {
    (@@fmt $writer:expr, $sep:expr, $is_head:expr, ($lit:literal $(, $e:expr)* $(,)?)) => { ... };
    (@@item $writer:expr, $sep:expr, $is_head:expr, $e:expr) => { ... };
    (@@line_feed $writer:expr $(,)?) => { ... };
    (@@it $writer:expr, $sep:expr, $is_head:expr, $iter:expr) => { ... };
    (@@it1 $writer:expr, $sep:expr, $is_head:expr, $iter:expr) => { ... };
    (@@cw $writer:expr, $sep:expr, $is_head:expr, ($ch:literal $iter:expr)) => { ... };
    (@@bw $writer:expr, $sep:expr, $is_head:expr, ($b:literal $iter:expr)) => { ... };
    (@@it2d $writer:expr, $sep:expr, $is_head:expr, $iter:expr) => { ... };
    (@@tup $writer:expr, $sep:expr, $is_head:expr, $tuple:expr) => { ... };
    (@@ittup $writer:expr, $sep:expr, $is_head:expr, $iter:expr) => { ... };
    (@@assert_tag item) => { ... };
    (@@assert_tag it) => { ... };
    (@@assert_tag it1) => { ... };
    (@@assert_tag it2d) => { ... };
    (@@assert_tag tup) => { ... };
    (@@assert_tag ittup) => { ... };
    (@@assert_tag $tag:ident) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, @sep $e:expr, $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, @ns $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, @lf $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, @sp $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, @flush $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, @fmt $arg:tt $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, @cw $arg:tt $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, @bw $arg:tt $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, @$tag:ident $e:expr, $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, @$tag:ident $e:expr; $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, @$tag:ident $e:expr) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, @$tag:ident $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, , $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, ; $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, ! $(,)?) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, ! $($t:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr,) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, { $($t:tt)* } $($rest:tt)*) => { ... };
    (@@inner $writer:expr, $sep:expr, $is_head:expr, $($t:tt)*) => { ... };
    ($writer:expr, $($t:tt)*) => { ... };
}
Expand description

Print expressions with a separator.

  • iter_print!(writer, args...)
  • @sep $expr: set separator (default: ' ')
  • @ns: alias for @sep ""
  • @lf: alias for @sep '\n'
  • @sp: alias for @sep ' '
  • @fmt ($lit, $($expr),*): print format!($lit, $($expr),*)
  • @flush: flush writer (auto insert !)
  • @it $expr: print iterator
  • @it1 $expr: print iterator as 1-indexed
  • @cw ($char $expr): print iterator as (elem as u8 + $char as u8) as char
  • @bw ($byte $expr): print iterator as (elem as u8 + $byte) as char
  • @it2d $expr: print 2d-iterator
  • @tup $expr: print tuple (need to import IterPrint)
  • @ittup $expr: print iterative tuple (need to import IterPrint)
  • $expr: print expr
  • { args... }: scoped
  • ;: print '\n'
  • !: not print '\n' at the end