Fixed some stuff maybe

This commit is contained in:
famfo 2022-01-27 23:25:27 +01:00
parent d03421e4d1
commit 7dd830c7c8
2 changed files with 7 additions and 18 deletions

View file

@ -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);
}*/
}
}

View file

@ -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 }
}