1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
use page::Page; use std::path::Path; use std::io::Read; use string::String; pub enum Result<'a, T: 'a> { Ok(&'a mut T), Error, } pub fn read_to_string<'a>(page: &mut Page, path: &String) -> Result<'a, String> { let rust_string = path.as_rust_string(); match ::std::fs::File::open(Path::new(&rust_string)) { Ok(mut f) => { Result::Ok({ let mut rust_string = ::std::string::String::new(); match f.read_to_string(&mut rust_string) { Ok(_) => String::from_rust_string(page, rust_string), Err(_) => String::from_rust_string(page, ::std::string::String::new()), } }) } Err(_) => Result::Error, } }