diff examples/eclrenderer.rs @ 700:ccb739c5b66c

examples: factorise file reading into a buffer.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Fri, 23 Aug 2019 13:05:48 +0200
parents 7ae576a418ff
children b6c351ca0a35
line wrap: on
line diff
--- a/examples/eclrenderer.rs
+++ b/examples/eclrenderer.rs
@@ -88,6 +88,14 @@ struct ShaderInterface {
     mvp: Uniform<[[f32; 4]; 4]>,
 }
 
+fn load_file_into_vec(filename: &str) -> Vec<u8> {
+    let file = File::open(filename).unwrap();
+    let mut file = BufReader::new(file);
+    let mut buf = vec![];
+    file.read_to_end(&mut buf).unwrap();
+    buf
+}
+
 fn main() {
     // Parse arguments.
     let args: Vec<_> = env::args().collect();
@@ -102,17 +110,11 @@ fn main() {
     let sub: u16 = args[5].parse().expect("number");
 
     // Open the ECL file.
-    let file = File::open(ecl_filename).unwrap();
-    let mut file = BufReader::new(file);
-    let mut buf = vec![];
-    file.read_to_end(&mut buf).unwrap();
+    let buf = load_file_into_vec(ecl_filename);
     let (_, ecl) = Ecl::from_slice(&buf).unwrap();
 
     // Open the ANM file.
-    let file = File::open(anm_filename).unwrap();
-    let mut file = BufReader::new(file);
-    let mut buf = vec![];
-    file.read_to_end(&mut buf).unwrap();
+    let buf = load_file_into_vec(anm_filename);
     let anm0 = Anm0::from_slice(&buf).unwrap();
     let anm0 = Rc::new(RefCell::new(anm0));