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
/*
	Directory used for library sourcing logic
*/

// FIXME: Move macros for output in their standalone crate

// Macro to handle fixme messages
// FIXME: Implement export in log directory based on system used
// FIXME: Allow end-user to customize the message
// FIXME: Allow end-user to mute the messages through configuration
// FIXME: Contribute in log to outsource maintainance on them
#[macro_export]
macro_rules! fixme {
	($msg:expr) => ( println!("FIXME: {}", $msg);)
}

// Macro to inform the end-user about non-fatal error
// FIXME: Implement export in log directory based on system used
// FIXME: Allow end-user to customize the message
// FIXME: Contribute in log to outsource maintainance on them
#[macro_export]
macro_rules! error {
	($msg:expr) => ( println!("ERROR: {}", $msg);)
}


// Macro to output info message for the end-user
// FIXME: Implement export in log directory based on system used
// FIXME: Allow end-user to customize the message
// FIXME: Contribute in log to outsource maintainance on them
#[macro_export]
macro_rules! warn {
	($msg:expr) => ( println!("warn: {}", $msg);)
}

// Macro to perform tracing
// FIXME: Implement export in log directory based on system used and debug level
// FIXME: Allow end-user to customize the message
// FIXME: Contribute in log to outsource maintainance on them
// FIXME: Output only if debug level 2 and higger is used
// FIXME: Add method to select the level of trace message based on the amount of `-v` parsed
#[macro_export]
macro_rules! trace {
	($msg:expr) => ( println!("TRACE: {}", $msg);)
}

// Macro to handle info messages
// FIXME: Implement export in log directory based on system used
// FIXME: Outsource parts of the code in log crate?
// FIXME: Allow end-user to customize the message
#[macro_export]
macro_rules! info {
	($msg:expr) => ( println!("INFO: {}", $msg);)
}

// Macro to overwrite default `unimplemented!();` to be more user-friendly
// FIXME: Determine error code for unimplemented
#[macro_export]
macro_rules! unimplemented {
	($msg:expr) => (
		die!(126; "UNIMPLEMENTED: {}", $msg);
	)
}