aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2016-04-03 23:49:54 +0900
committerKazuki Yamaguchi <k@rhe.jp>2016-04-03 23:49:54 +0900
commit834b66f651102f216076fedcdcaf3d4beb14a0c5 (patch)
tree5f9dca16efe00027cb98611c41397d6af1dd4981
parent2715a8e3d4f01a80e0e306408df8ce69a0f5199e (diff)
downloadpoe-834b66f651102f216076fedcdcaf3d4beb14a0c5.tar.gz
backend: fd を u32 にした
-rw-r--r--src/run_result.rs12
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
}