Reorganize code

This commit is contained in:
topjohnwu
2023-05-04 18:49:33 -07:00
committed by John Wu
parent 21ddb26db8
commit 7b5ff99cd1
3 changed files with 182 additions and 183 deletions

View File

@@ -1,7 +1,8 @@
use std::cmp::min;
use std::ffi::CStr;
use std::fs::File;
use std::io;
use std::io::BufRead;
use std::io::{BufRead, Write};
use std::os::unix::io::{AsRawFd, FromRawFd, OwnedFd, RawFd};
use std::path::Path;
@@ -140,3 +141,19 @@ pub fn read_lines<P: AsRef<Path>>(path: P) -> io::Result<io::Lines<io::BufReader
let file = File::open(path)?;
Ok(io::BufReader::new(file).lines())
}
pub trait WriteExt {
fn write_zeros(&mut self, len: usize) -> io::Result<()>;
}
impl<T: Write> WriteExt for T {
fn write_zeros(&mut self, mut len: usize) -> io::Result<()> {
let mut buf = [0 as u8; 4096];
while len > 0 {
let l = min(buf.len(), len);
self.write_all(&mut buf[..l])?;
len -= l;
}
Ok(())
}
}