]> git.lizzy.rs Git - rust.git/blob - src/librustpkg/messages.rs
libextra: Remove @mut from term.
[rust.git] / src / librustpkg / messages.rs
1 // Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 use extra::term;
12 use std::io;
13
14 pub fn note(msg: &str) {
15     pretty_message(msg, "note: ", term::color::GREEN);
16 }
17
18 pub fn warn(msg: &str) {
19     pretty_message(msg, "warning: ", term::color::YELLOW);
20 }
21
22 pub fn error(msg: &str) {
23     pretty_message(msg, "error: ", term::color::RED);
24 }
25
26 fn pretty_message<'a>(msg: &'a str,
27                       prefix: &'a str,
28                       color: term::color::Color) {
29     let mut term = term::Terminal::new(io::stdout());
30     let mut stdout = io::stdout();
31     match term {
32         Ok(ref mut t) => {
33             t.fg(color);
34             t.write(prefix.as_bytes());
35             t.reset();
36         },
37         _ => {
38             stdout.write(prefix.as_bytes());
39         }
40     }
41     stdout.write(msg.as_bytes());
42     stdout.write(['\n' as u8]);
43 }