macro_rules! define_printlike {
(
$( #[$meta:meta] )*
$name:ident,
$macro:path,
expect,
$( $args:tt )*
) => { ... };
(
$( #[$meta:meta] )*
$name:ident,
$macro:path,
try,
$( $args:tt )*
) => { ... };
}Expand description
Defines a print-like macro with a given name that uses
specified write macro, error-handling policy and writer.
The writer itself is specified by the rest arguments with the define_writer macros.
ยงExamples
let mut string = String::new();
custom_print::define_printlike!(cprintln, writeln, expect, fmt, |value: &str| string += value);
custom_print::define_printlike!(try_println, writeln, try, fmt, |value: &str| string += value);
assert_eq!(cprintln!("first"), ());
assert_eq!(string, "first\n");
assert_eq!(try_println!("second"), Ok(()));
assert_eq!(string, "first\nsecond\n");