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>, }
Expand description
Represents a single vehicle. Note “car” is a misnomer; it could also be a bus or bike.
Fields
vehicle: Vehicle
state: CarState
router: Router
trip_and_person: Option<(TripID, PersonID)>
None for buses
started_at: Time
total_blocked_time: Duration
last_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
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
pub fn get_draw_car(
&self,
front: Distance,
now: Time,
map: &Map,
transit: &TransitSimState
) -> DrawCarInput
Trait Implementations
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl RefUnwindSafe for Car
impl UnwindSafe for Car
Blanket Implementations
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
type Output = T
type Output = T
Should always be Self