Struct sim::mechanics::car::Car[][src]

pub(crate) struct Car {
    pub vehicle: Vehicle,
    pub state: CarState,
    pub router: Router,
    pub trip_and_person: Option<(TripID, PersonID)>,
    pub started_at: Time,
    pub total_blocked_time: Duration,
    pub last_steps: VecDeque<Traversable>,
    pub wants_to_overtake: BTreeSet<CarID>,
}

Represents a single vehicle. Note "car" is a misnomer; it could also be a bus or bike.

Fields

vehicle: Vehiclestate: CarStaterouter: Routertrip_and_person: Option<(TripID, PersonID)>

None for buses

started_at: Timetotal_blocked_time: Durationlast_steps: VecDeque<Traversable>

In reverse order -- most recently left is first. The sum length of these must be >= vehicle.length.

wants_to_overtake: BTreeSet<CarID>

Since lane over-taking isn't implemented yet, a vehicle tends to be stuck behind a slow leader for a while. Avoid duplicate events.

Implementations

impl Car[src]

pub fn crossing_state(
    &self,
    start_dist: Distance,
    start_time: Time,
    map: &Map
) -> CarState
[src]

Assumes the current head of the path is the thing to cross.

pub fn crossing_state_with_end_dist(
    &self,
    dist_int: DistanceInterval,
    start_time: Time,
    map: &Map
) -> CarState
[src]

pub fn get_draw_car(
    &self,
    front: Distance,
    now: Time,
    map: &Map,
    transit: &TransitSimState
) -> DrawCarInput
[src]

pub fn is_parking(&self) -> bool[src]

Trait Implementations

impl Clone for Car[src]

impl Debug for Car[src]

impl<'de> Deserialize<'de> for Car[src]

impl Serialize for Car[src]

Auto Trait Implementations

impl RefUnwindSafe for Car[src]

impl Send for Car[src]

impl Sync for Car[src]

impl Unpin for Car[src]

impl UnwindSafe for Car[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> Downcast for T where
    T: Any

impl<T> DowncastSync for T where
    T: Send + Sync + Any

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,