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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
#[macro_use] extern crate lazy_static; #[macro_use] extern crate log; extern crate time; extern crate hyper; extern crate rand; extern crate termion; extern crate protobuf; extern crate libc; mod logging; mod serialization; mod screen; mod node; mod pack; mod meta; mod plot; mod task; mod colors; mod pb; use std::cmp; use std::collections::HashMap; pub use self::serialization::{serialize_screen, deserialize_screen}; pub use self::screen::Screen; pub use self::node::Node; pub use self::pack::Pack; pub use self::colors::random_fg_color; pub use logging::init_screen_log; pub use meta::Meta; pub type Coords = (u16, u16); pub type NodeID = u64; pub type ScreenDesc = (HashMap<Coords, NodeID>, HashMap<NodeID, Coords>); #[derive(Debug, PartialEq, Eq)] pub enum Dir { L, R, } pub fn cost(c1: Coords, c2: Coords) -> u16 { let xcost = cmp::max(c1.0, c2.0) - cmp::min(c1.0, c2.0); let ycost = cmp::max(c1.1, c2.1) - cmp::min(c1.1, c2.1); xcost + ycost }