1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// macros.rs
//! Macros.
// Macros ---------------------------------------------------------------------------------------------------
/// Prints the process invocation name, an error label, and a message to a stream.
///
/// The macro evaluates to a [`std::io::Result<()>`], just like [`writeln`] does.
///
/// **NOTE:** The macro requires the crate [`owo-colors`].
///
/// # Examples
///
/// ```
/// # #[macro_use] extern crate meadows;
/// let mut stderr = meadows::io::stderr().lock();
/// process_error!(stderr, "Cannot start engine")?; // -> "${inv_name}: error: Cannot start engine\n"
/// # Ok::<(), anyhow::Error>(())
/// ```
/// Prints the process invocation name and a message to , a note label, and a message to a stream.
///
/// The macro evaluates to a [`std::io::Result<()>`], just like [`writeln`] does.
///
/// **NOTE:** The macro requires the crate [`owo-colors`].
///
/// # Examples
///
/// ```
/// # #[macro_use] extern crate meadows;
/// let mut stdout = meadows::io::stdout().lock();
/// process_note!(stdout, "Engine started")?; // -> "${inv_name}: note: Engine started\n"
/// # Ok::<(), anyhow::Error>(())
/// ```
/// Prints the process invocation name, a warning label, and a message to a stream.
///
/// The macro evaluates to a [`std::io::Result<()>`], just like [`writeln`] does.
///
/// **NOTE:** The macro requires the crate [`owo-colors`].
///
/// # Examples
///
/// ```
/// # #[macro_use] extern crate meadows;
/// let mut stderr = meadows::io::stderr().lock();
/// process_warn!(stderr, "Engine overheating")?; // -> "${inv_name}: warning: Engine overheating\n"
/// # Ok::<(), anyhow::Error>(())
/// ```
// EOF