X-Git-Url: https://i11git.iti.kit.edu/anon-gitweb/?p=Mitarbeiter%2FTim-Zeitz%2Fstud-rust-base.git;a=blobdiff_plain;f=src%2Fbin%2Fexample.rs;fp=src%2Fbin%2Fexample.rs;h=775d2ca7a85aadccd1b47976cb7b5b4904970ea1;hp=0000000000000000000000000000000000000000;hb=c56a14307218fbb51ad188826a431cd034cce473;hpb=dd14e61875eedc443d6004db819562a9b7f98a14 diff --git a/src/bin/example.rs b/src/bin/example.rs new file mode 100644 index 0000000..775d2ca --- /dev/null +++ b/src/bin/example.rs @@ -0,0 +1,30 @@ +extern crate stud_rust_base; + +use stud_rust_base::{ + types::*, + io::*, + time::report_time, +}; + +use std::{env, path::Path}; + +fn main() { + let mut args = env::args(); + args.next(); + + let arg = &args.next().expect("No directory arg given"); + let path = Path::new(arg); + + let first_out = Vec::::load_from(path.join("first_out").to_str().unwrap()).expect("could not read first_out"); + let head = Vec::::load_from(path.join("head").to_str().unwrap()).expect("could not read head"); + let travel_time = Vec::::load_from(path.join("travel_time").to_str().unwrap()).expect("could not read travel_time"); + + report_time("iterating over arcs of some node", || { + let node_id = 42; + for &edge_id in &head[first_out[node_id] as usize .. first_out[node_id + 1] as usize] { + println!("There is an arc from {} to {} with weight {}", node_id, head[edge_id as usize], travel_time[edge_id as usize]); + } + }); + + vec![42; 42].write_to(path.join("distances").to_str().unwrap()).expect("could not write distances"); +}