diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2016-04-03 23:49:54 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2016-04-03 23:49:54 +0900 |
commit | 834b66f651102f216076fedcdcaf3d4beb14a0c5 (patch) | |
tree | 5f9dca16efe00027cb98611c41397d6af1dd4981 | |
parent | 2715a8e3d4f01a80e0e306408df8ce69a0f5199e (diff) | |
download | poe-834b66f651102f216076fedcdcaf3d4beb14a0c5.tar.gz |
backend: fd を u32 にした
-rw-r--r-- | src/run_result.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/run_result.rs b/src/run_result.rs index da01f7e..50cd1da 100644 --- a/src/run_result.rs +++ b/src/run_result.rs @@ -50,16 +50,16 @@ pub fn read_stdout_raw(snip: &Snippet, comp: &Compiler) -> Vec<u8> { out } -fn read_output_str(snip: &Snippet, comp: &Compiler) -> Vec<(u8, String)> { +fn read_output_str(snip: &Snippet, comp: &Compiler) -> Vec<(u32, String)> { read_output_raw(&snip, &comp).iter().map(|pair| { (pair.0, String::from_utf8_lossy(&pair.1).into_owned()) }).collect() } -fn read_output_raw(snip: &Snippet, comp: &Compiler) -> Vec<(u8, Vec<u8>)> { - let f = |out: &mut Vec<(u8, Vec<u8>)>| { +fn read_output_raw(snip: &Snippet, comp: &Compiler) -> Vec<(u32, Vec<u8>)> { + let f = |out: &mut Vec<(u32, Vec<u8>)>| { let mut out_file = stry!(fs::File::open(format!("{}/results/{}.output", &snip.basedir(), &comp.id))); - while let Ok(fd) = out_file.read_u8() { + while let Ok(fd) = out_file.read_u32::<LittleEndian>() { let len = stry!(out_file.read_u32::<LittleEndian>()); if len > 1024 * 1024 { return Err("broken input?".to_string()); } // TODO let mut body = vec![0; len as usize]; @@ -70,8 +70,8 @@ fn read_output_raw(snip: &Snippet, comp: &Compiler) -> Vec<(u8, Vec<u8>)> { }; let mut out = vec![]; - if f(&mut out).is_err() { - // TODO: show err? + if let Err(err) = f(&mut out) { + println!("{}", err); } out } |