Struct ltn::DiagonalFilter
source · [−]pub struct DiagonalFilter {
r1: RoadID,
r2: RoadID,
i: IntersectionID,
group1: BTreeSet<RoadID>,
group2: BTreeSet<RoadID>,
}
Expand description
A diagonal filter exists in an intersection. It’s defined by two roads (the order is arbitrary). When all of the intersection’s roads are sorted in clockwise order, this pair of roads splits the ordering into two groups. Turns in each group are still possible, but not across groups.
TODO Be careful with PartialEq! At a 4-way intersection, the same filter can be expressed as a different pair of two roads. And the (r1, r2) ordering is also arbitrary.
Fields
r1: RoadID
r2: RoadID
i: IntersectionID
group1: BTreeSet<RoadID>
group2: BTreeSet<RoadID>
Implementations
sourceimpl DiagonalFilter
impl DiagonalFilter
sourcepub fn cycle_through_alternatives(
app: &mut SimpleApp<Session>,
i: IntersectionID
)
pub fn cycle_through_alternatives(
app: &mut SimpleApp<Session>,
i: IntersectionID
)
The caller must call this in a before_edit
/ after_edit
“transaction.”
fn new(map: &Map, i: IntersectionID, r1: RoadID, r2: RoadID) -> DiagonalFilter
pub fn allows_turn(&self, from: RoadID, to: RoadID) -> bool
fn avoid_movements_between_roads(&self) -> Vec<(RoadID, RoadID)>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Trait Implementations
sourceimpl Clone for DiagonalFilter
impl Clone for DiagonalFilter
sourcefn clone(&self) -> DiagonalFilter
fn clone(&self) -> DiagonalFilter
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<'de> Deserialize<'de> for DiagonalFilter
impl<'de> Deserialize<'de> for DiagonalFilter
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
sourceimpl PartialEq<DiagonalFilter> for DiagonalFilter
impl PartialEq<DiagonalFilter> for DiagonalFilter
sourcefn eq(&self, other: &DiagonalFilter) -> bool
fn eq(&self, other: &DiagonalFilter) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &DiagonalFilter) -> bool
fn ne(&self, other: &DiagonalFilter) -> bool
This method tests for !=
.
sourceimpl Serialize for DiagonalFilter
impl Serialize for DiagonalFilter
impl StructuralPartialEq for DiagonalFilter
Auto Trait Implementations
impl RefUnwindSafe for DiagonalFilter
impl Send for DiagonalFilter
impl Sync for DiagonalFilter
impl Unpin for DiagonalFilter
impl UnwindSafe for DiagonalFilter
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>
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be 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