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
sourceimpl Car
impl Car
sourcepub fn crossing_state(
&self,
start_dist: Distance,
start_time: Time,
map: &Map
) -> CarState
pub fn crossing_state(
&self,
start_dist: Distance,
start_time: Time,
map: &Map
) -> CarState
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
pub fn is_parking(&self) -> bool
Trait Implementations
sourceimpl<'de> Deserialize<'de> for Car
impl<'de> Deserialize<'de> for Car
sourcefn 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 Send for Car
impl Sync for Car
impl Unpin for Car
impl UnwindSafe for Car
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
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
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
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
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more