From 7dd830c7c85e3f9a82f797ef7075e5428cc9e72c Mon Sep 17 00:00:00 2001 From: famfo Date: Thu, 27 Jan 2022 23:25:27 +0100 Subject: [PATCH] Fixed some stuff maybe --- src/main.rs | 17 +++++------------ src/unsafe_std/bufreader.rs | 8 ++------ 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/src/main.rs b/src/main.rs index ac7046c..7cb83be 100644 --- a/src/main.rs +++ b/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" 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); - }*/ + } } diff --git a/src/unsafe_std/bufreader.rs b/src/unsafe_std/bufreader.rs index 666557b..b22a892 100644 --- a/src/unsafe_std/bufreader.rs +++ b/src/unsafe_std/bufreader.rs @@ -8,19 +8,15 @@ use std::io::{Error, Read}; #[derive(Debug)] pub struct UnsafeBufReader { inner: R, - buf: ArrayVec, + buf: Box<[u8]>, pos: usize, cap: usize, } impl UnsafeBufReader { pub fn new(inner: R) -> UnsafeBufReader { - UnsafeBufReader::with_capacity(8192, inner) - } - - pub fn with_capacity(capacity: usize, inner: R) -> UnsafeBufReader { unsafe { - let mut buf = ArrayVec::::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 } }