Factor out the code for reading a file into a utility function.
This commit is contained in:
@@ -20,6 +20,14 @@ pub fn read_to_string<P: AsRef<Path>>(path: P) -> io::Result<String> {
|
||||
Ok(buffer)
|
||||
}
|
||||
|
||||
/// Read an entire file into a vector of bytes.
|
||||
pub fn read_to_end<P: AsRef<Path>>(path: P) -> io::Result<Vec<u8>> {
|
||||
let mut file = File::open(path)?;
|
||||
let mut buffer = Vec::new();
|
||||
file.read_to_end(&mut buffer)?;
|
||||
Ok(buffer)
|
||||
}
|
||||
|
||||
/// Look for a directive in a comment string.
|
||||
/// The directive is of the form "foo:" and should follow the leading `;` in the comment:
|
||||
///
|
||||
|
||||
@@ -16,7 +16,7 @@ use std::path::Path;
|
||||
use std::process::Command;
|
||||
use tempdir::TempDir;
|
||||
use term;
|
||||
use utils::{pretty_verifier_error, pretty_error, parse_sets_and_isa};
|
||||
use utils::{pretty_verifier_error, pretty_error, parse_sets_and_isa, read_to_end};
|
||||
|
||||
macro_rules! vprintln {
|
||||
($x: expr, $($tts:tt)*) => {
|
||||
@@ -34,13 +34,6 @@ macro_rules! vprint {
|
||||
}
|
||||
}
|
||||
|
||||
fn read_wasm_file(path: PathBuf) -> Result<Vec<u8>, io::Error> {
|
||||
let mut buf: Vec<u8> = Vec::new();
|
||||
let mut file = File::open(path)?;
|
||||
file.read_to_end(&mut buf)?;
|
||||
Ok(buf)
|
||||
}
|
||||
|
||||
pub fn run(
|
||||
files: Vec<String>,
|
||||
flag_verbose: bool,
|
||||
@@ -92,7 +85,7 @@ fn handle_module(
|
||||
Some(ext) => {
|
||||
match ext.to_str() {
|
||||
Some("wasm") => {
|
||||
read_wasm_file(path.clone()).map_err(|err| {
|
||||
read_to_end(path.clone()).map_err(|err| {
|
||||
String::from(err.description())
|
||||
})?
|
||||
}
|
||||
@@ -110,9 +103,9 @@ fn handle_module(
|
||||
} else {
|
||||
return Err(String::from(e.description()));
|
||||
})?;
|
||||
read_wasm_file(file_path).map_err(|err| {
|
||||
String::from(err.description())
|
||||
})?
|
||||
read_to_end(file_path).map_err(
|
||||
|err| String::from(err.description()),
|
||||
)?
|
||||
}
|
||||
None | Some(&_) => {
|
||||
return Err(String::from("the file extension is not wasm or wat"));
|
||||
|
||||
Reference in New Issue
Block a user