Fixed some stuff maybe
This commit is contained in:
parent
d03421e4d1
commit
7dd830c7c8
17
src/main.rs
17
src/main.rs
|
@ -1,4 +1,4 @@
|
|||
#![feature(slice_internals, read_initializer)]
|
||||
#![feature(slice_internals, read_initializer, new_uninit)]
|
||||
|
||||
use unsafe_std::bufread::{UnsafeBufRead, UnsafeLines};
|
||||
use unsafe_std::bufreader::UnsafeBufReader;
|
||||
|
@ -233,6 +233,8 @@ fn decoder(inputfile: &str) -> Result<(u32, u32, ColorType, ArrayVec<String, 124
|
|||
let infile = File::open(inputfile)?;
|
||||
let mut lines = UnsafeBufReader::new(infile).lines();
|
||||
|
||||
println!("{:?}", lines);
|
||||
|
||||
// "CIF: <flags>"
|
||||
if !lines.next().transpose()?.ok_or(InvalidHeaderError)?.starts_with("CIF:") {
|
||||
return Err(InvalidHeaderError)
|
||||
|
@ -315,16 +317,7 @@ fn main() {
|
|||
process::exit(1);
|
||||
}
|
||||
|
||||
let infile = File::open(argv[0].clone()).unwrap();
|
||||
let mut lines = UnsafeBufReader::new(infile).lines();
|
||||
|
||||
loop {
|
||||
if let Some(pls) = lines.next().transpose().unwrap() {
|
||||
println!("{:?}", pls);
|
||||
}
|
||||
}
|
||||
|
||||
/*let data = decoder(&argv[0]);
|
||||
let data = decoder(&argv[0]);
|
||||
if let Err(e) = data {
|
||||
eprintln!("Error while parsing cif: {}", e);
|
||||
process::exit(1);
|
||||
|
@ -332,5 +325,5 @@ fn main() {
|
|||
let data = data.unwrap();
|
||||
if let Err(e) = write_png(&argv[1], data.0, data.1, data.2, data.3, data.4, data.5) {
|
||||
eprintln!("Error while writing image: {}", e);
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,19 +8,15 @@ use std::io::{Error, Read};
|
|||
#[derive(Debug)]
|
||||
pub struct UnsafeBufReader<R> {
|
||||
inner: R,
|
||||
buf: ArrayVec<u8, 8192>,
|
||||
buf: Box<[u8]>,
|
||||
pos: usize,
|
||||
cap: usize,
|
||||
}
|
||||
|
||||
impl<R: Read> UnsafeBufReader<R> {
|
||||
pub fn new(inner: R) -> UnsafeBufReader<R> {
|
||||
UnsafeBufReader::with_capacity(8192, inner)
|
||||
}
|
||||
|
||||
pub fn with_capacity(capacity: usize, inner: R) -> UnsafeBufReader<R> {
|
||||
unsafe {
|
||||
let mut buf = ArrayVec::<u8, 8192>::new();
|
||||
let mut buf = std::boxed::Box::new_uninit_slice(8192).assume_init();
|
||||
inner.initializer().initialize(&mut buf);
|
||||
UnsafeBufReader { inner, buf, pos: 0, cap: 0 }
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue