summaryrefslogtreecommitdiff
path: root/racer-tracer/src/terminal.rs
diff options
context:
space:
mode:
Diffstat (limited to 'racer-tracer/src/terminal.rs')
-rw-r--r--racer-tracer/src/terminal.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/racer-tracer/src/terminal.rs b/racer-tracer/src/terminal.rs
new file mode 100644
index 0000000..48eb599
--- /dev/null
+++ b/racer-tracer/src/terminal.rs
@@ -0,0 +1,26 @@
+use console::Term;
+use slog::Logger;
+
+pub struct Terminal {
+ pub logger: Logger,
+ pub terminal: Term,
+}
+
+impl Terminal {
+ pub fn new(logger: Logger) -> Self {
+ Self {
+ logger,
+ terminal: Term::stdout(),
+ }
+ }
+}
+
+macro_rules! write_term {
+ ($term:expr, $text:expr) => {{
+ if let Err(e) = $term.terminal.write_line($text) {
+ debug!($term.logger, "Failed to write to terminal: {}", e)
+ }
+ }};
+}
+
+pub(crate) use write_term;