cargo-local-install 0.1.12

Wraps `cargo install` for better local, non-conflicting installation
Documentation
macro_rules! error {
    ( None,      $fmt:literal $($tt:tt)* ) => { crate::Error(format!($fmt $($tt)*), None) };
    ( $err:expr, $fmt:literal $($tt:tt)* ) => { crate::Error(format!($fmt $($tt)*), Some($err.into())) };
}

macro_rules! errorln {
    ( $fmt:literal $($tt:tt)* ) => {{
        use std::io::Write;
        let stderr = std::io::stderr();
        let mut stderr = stderr.lock();
        let _ = write!  (&mut stderr, "\u{001B}[31;1merror\u{001B}[37m:\u{001B}[0m ");
        let _ = writeln!(&mut stderr, $fmt $($tt)*);
    }};
}

macro_rules! warnln {
    ( $fmt:literal $($tt:tt)* ) => {{
        use std::io::Write;
        let stderr = std::io::stderr();
        let mut stderr = stderr.lock();
        let _ = write!  (&mut stderr, "\u{001B}[33;1mwarning\u{001B}[37m:\u{001B}[0m ");
        let _ = writeln!(&mut stderr, $fmt $($tt)*);
    }};
}

macro_rules! statusln {
    ( $verb:literal, $fmt:literal $($tt:tt)* ) => {{
        use std::io::Write;
        let stderr = std::io::stderr();
        let mut stderr = stderr.lock();
        let _ = write!  (&mut stderr, "\u{001B}[32;1m{: >12}\u{001B}[0m ", $verb);
        let _ = writeln!(&mut stderr, $fmt $($tt)*);
    }};
}

macro_rules! fatal {
    ( $($tt:tt)* ) => {{
        errorln!($($tt)*);
        ::std::process::exit(1);
    }};
}