Struct oldnav_lib::navdata::route::Route [] [src]

pub struct Route {
    pub name: Option<String>,
    pub waypoints: LinkedList<Rc<Waypoint>>,
}

Defines a route

Examples

let p1 = SphericalCoordinate::from_geographic(0.0, 38.0, 144.0);
let c1 = Rc::new(Waypoint::new("1A", "Waypoint 1A", p1, None));
let p2 = SphericalCoordinate::from_geographic(0.0, 39.0, 144.0);
let c2 = Rc::new(Waypoint::new("1B", "Waypoint 1B", p2, None));
let p3 = SphericalCoordinate::from_geographic(0.0, 39.0, 145.0);
let c3 = Rc::new(Waypoint::new("1C", "Waypoint 1C", p3, None));

let mut route = Route::new(Some(String::from("a new route")));
route.append_waypoint(c1.clone());
route.append_waypoint(c2.clone());
route.append_waypoint(c3.clone());

assert_eq!(route.first().unwrap().name, c1.name);
assert_eq!(route.last().unwrap().name, c3.name);

Fields

name: Option<String>

Name of the Route

waypoints: LinkedList<Rc<Waypoint>>

Legs of the Route

Methods

impl Route
[src]

fn new(name: Option<String>) -> Route

Constructor for Route

fn append(&mut self, other: &mut Route)

Move all legs from other route to the end of this route. This reuses all the nodes from other and moves them into self. After this operation other route is emptied. This operation should be in O(1) time and memory.

fn insert_waypoint(&mut self, index: usize, waypoint: Rc<Waypoint>)

Insert a waypoint into this route at the given index position.

fn append_waypoint(&mut self, waypoint: Rc<Waypoint>)

Append a waypoint to the end of this route.

fn len(&self) -> usize

Returns the number of waypoints in the route.

fn first(&self) -> Option<&Rc<Waypoint>>

Get the first waypoint in the route.

fn last(&self) -> Option<&Rc<Waypoint>>

Get the last waypoint in the route.

Trait Implementations

impl Debug for Route
[src]

fn fmt(&self, __arg_0: &mut Formatter) -> Result

Formats the value using the given formatter.