Enum sim::mechanics::parking::ParkingSimState[][src]

pub enum ParkingSimState {
    Normal(NormalParkingSimState),
    Infinite(InfiniteParkingSimState),
}

Variants

Normal(NormalParkingSimState)
Infinite(InfiniteParkingSimState)

Implementations

impl ParkingSimState[src]

pub fn new(map: &Map, infinite: bool) -> ParkingSimState[src]

Counterintuitive: any spots located in blackholes are just not represented here. If somebody tries to drive from a blackholed spot, they couldn’t reach most places.

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

Trait Implementations

impl Clone for ParkingSimState[src]

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

impl From<InfiniteParkingSimState> for ParkingSimState[src]

impl From<NormalParkingSimState> for ParkingSimState[src]

impl ParkingSim for ParkingSimState[src]

fn handle_live_edits(&mut self, map: &Map) -> (Vec<ParkedCar>, Vec<CarID>)[src]

Returns any cars that got very abruptly evicted from existence, and also cars actively moving into a deleted spot.

fn unreserve_spot(&mut self, car: CarID)[src]

Needed when abruptly deleting a car, in case they’re being deleted during their last step.

fn canonical_pt(&self, id: CarID, map: &Map) -> Option<Pt2D>[src]

There’s no DrawCarInput for cars parked offstreet, so we need this.

fn get_all_free_spots(
    &self,
    driving_pos: Position,
    vehicle: &Vehicle,
    target: BuildingID,
    map: &Map
) -> Vec<(ParkingSpot, Position)>
[src]

The vehicle’s front is currently at the given driving_pos. Returns all valid spots and their driving position.

fn get_all_parking_spots(&self) -> (Vec<ParkingSpot>, Vec<ParkingSpot>)[src]

(Filled, available)

fn path_to_free_parking_spot(
    &self,
    start: LaneID,
    vehicle: &Vehicle,
    target: BuildingID,
    map: &Map
) -> Option<(Vec<PathStep>, ParkingSpot, Position)>
[src]

Unrealistically assumes the driver has knowledge of currently free parking spots, even if they’re far away. Since they don’t reserve the spot in advance, somebody else can still beat them there, producing some nice, realistic churn if there’s too much contention. But the implementation has some internal jitter between different vehicles, to discourage everybody near one spot from all competing for it. Note the first PathStep is the turn after start, NOT PathStep::Lane(start).

impl Serialize for ParkingSimState[src]

impl TryInto<InfiniteParkingSimState> for ParkingSimState[src]

type Error = &'static str

The type returned in the event of a conversion error.

impl TryInto<NormalParkingSimState> for ParkingSimState[src]

type Error = &'static str

The type returned in the event of a conversion error.

Auto Trait Implementations

impl RefUnwindSafe for ParkingSimState

impl Send for ParkingSimState

impl Sync for ParkingSimState

impl Unpin for ParkingSimState

impl UnwindSafe for ParkingSimState

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: Any + Send + Sync

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>,