Replace most `std::io::Write::write` with `write_all` (#82)
`std::io::Write` doesn't guarantees that it will write everything, and could even return a non-fatal `ErrorKind::Interrupted` error. `write_all` has exactly the code required to deal with this.
This commit is contained in:
parent
c04fd7f263
commit
c9c91292e5
|
@ -154,16 +154,16 @@ fn main() {
|
||||||
let stdin = stdin();
|
let stdin = stdin();
|
||||||
let mut stdin = stdin.lock();
|
let mut stdin = stdin.lock();
|
||||||
|
|
||||||
stdout.write(b"password: ").unwrap();
|
stdout.write_all(b"password: ").unwrap();
|
||||||
stdout.flush().unwrap();
|
stdout.flush().unwrap();
|
||||||
|
|
||||||
let pass = stdin.read_passwd(&mut stdout);
|
let pass = stdin.read_passwd(&mut stdout);
|
||||||
|
|
||||||
if let Ok(Some(pass)) = pass {
|
if let Ok(Some(pass)) = pass {
|
||||||
stdout.write(pass.as_bytes()).unwrap();
|
stdout.write_all(pass.as_bytes()).unwrap();
|
||||||
stdout.write(b"\n").unwrap();
|
stdout.write_all(b"\n").unwrap();
|
||||||
} else {
|
} else {
|
||||||
stdout.write(b"Error\n").unwrap();
|
stdout.write_all(b"Error\n").unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
|
@ -25,10 +25,10 @@ fn main() {
|
||||||
stdout.flush().unwrap();
|
stdout.flush().unwrap();
|
||||||
|
|
||||||
thread::sleep(Duration::from_millis(50));
|
thread::sleep(Duration::from_millis(50));
|
||||||
stdout.write(b"# ").unwrap();
|
stdout.write_all(b"# ").unwrap();
|
||||||
stdout.flush().unwrap();
|
stdout.flush().unwrap();
|
||||||
thread::sleep(Duration::from_millis(50));
|
thread::sleep(Duration::from_millis(50));
|
||||||
stdout.write(b"\r #").unwrap();
|
stdout.write_all(b"\r #").unwrap();
|
||||||
write!(stdout, "{}", termion::cursor::Goto(1, 1)).unwrap();
|
write!(stdout, "{}", termion::cursor::Goto(1, 1)).unwrap();
|
||||||
stdout.flush().unwrap();
|
stdout.flush().unwrap();
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,15 +9,15 @@ fn main() {
|
||||||
let stdin = stdin();
|
let stdin = stdin();
|
||||||
let mut stdin = stdin.lock();
|
let mut stdin = stdin.lock();
|
||||||
|
|
||||||
stdout.write(b"password: ").unwrap();
|
stdout.write_all(b"password: ").unwrap();
|
||||||
stdout.flush().unwrap();
|
stdout.flush().unwrap();
|
||||||
|
|
||||||
let pass = stdin.read_passwd(&mut stdout);
|
let pass = stdin.read_passwd(&mut stdout);
|
||||||
|
|
||||||
if let Ok(Some(pass)) = pass {
|
if let Ok(Some(pass)) = pass {
|
||||||
stdout.write(pass.as_bytes()).unwrap();
|
stdout.write_all(pass.as_bytes()).unwrap();
|
||||||
stdout.write(b"\n").unwrap();
|
stdout.write_all(b"\n").unwrap();
|
||||||
} else {
|
} else {
|
||||||
stdout.write(b"Error\n").unwrap();
|
stdout.write_all(b"Error\n").unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,7 +160,7 @@ pub struct MouseTerminal<W: Write> {
|
||||||
|
|
||||||
impl<W: Write> From<W> for MouseTerminal<W> {
|
impl<W: Write> From<W> for MouseTerminal<W> {
|
||||||
fn from(mut from: W) -> MouseTerminal<W> {
|
fn from(mut from: W) -> MouseTerminal<W> {
|
||||||
from.write(ENTER_MOUSE_SEQUENCE.as_bytes()).unwrap();
|
from.write_all(ENTER_MOUSE_SEQUENCE.as_bytes()).unwrap();
|
||||||
|
|
||||||
MouseTerminal { term: from }
|
MouseTerminal { term: from }
|
||||||
}
|
}
|
||||||
|
@ -168,7 +168,7 @@ impl<W: Write> From<W> for MouseTerminal<W> {
|
||||||
|
|
||||||
impl<W: Write> Drop for MouseTerminal<W> {
|
impl<W: Write> Drop for MouseTerminal<W> {
|
||||||
fn drop(&mut self) {
|
fn drop(&mut self) {
|
||||||
self.term.write(EXIT_MOUSE_SEQUENCE.as_bytes()).unwrap();
|
self.term.write_all(EXIT_MOUSE_SEQUENCE.as_bytes()).unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -141,6 +141,6 @@ mod test {
|
||||||
fn test_into_raw_mode() {
|
fn test_into_raw_mode() {
|
||||||
let mut out = stdout().into_raw_mode().unwrap();
|
let mut out = stdout().into_raw_mode().unwrap();
|
||||||
|
|
||||||
out.write(b"this is a test, muahhahahah").unwrap();
|
out.write_all(b"this is a test, muahhahahah").unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue