]> git.proxmox.com Git - rustc.git/blob - src/vendor/termion/src/sys/unix/mod.rs
New upstream version 1.23.0+dfsg1
[rustc.git] / src / vendor / termion / src / sys / unix / mod.rs
1 extern crate libc;
2
3 use std::io;
4
5 pub use self::libc::termios as Termios;
6
7 pub mod attr;
8 pub mod size;
9 pub mod tty;
10
11 // Support functions for converting libc return values to io errors {
12 trait IsMinusOne {
13 fn is_minus_one(&self) -> bool;
14 }
15
16 macro_rules! impl_is_minus_one {
17 ($($t:ident)*) => ($(impl IsMinusOne for $t {
18 fn is_minus_one(&self) -> bool {
19 *self == -1
20 }
21 })*)
22 }
23
24 impl_is_minus_one! { i8 i16 i32 i64 isize }
25
26 fn cvt<T: IsMinusOne>(t: T) -> io::Result<T> {
27 if t.is_minus_one() {
28 Err(io::Error::last_os_error())
29 } else {
30 Ok(t)
31 }
32 }
33 // } End of support functions