Struct transit_grid::core::TransitEdge
source · pub struct TransitEdge<T: CoordNum> {
pub id: EdgeId,
pub source: NodeId,
pub target: NodeId,
pub length: T,
pub path: LineString<T>,
}
Expand description
Structure representing a connection between two TransitNode
instances.
Each edge has a unique identifier and a path represented as a LineString
.
The LineString
type T
is generic and can be any type that implements the CoordNum
trait.
Examples
use geo::{coord, LineString};
use transit_grid::core::TransitEdge;
let edge = TransitEdge {
id: 1,
source: 1,
target: 2,
length: 1.0,
path: LineString(vec![coord! { x: 0.0, y: 0.0 }, coord! { x: 1.0, y: 1.0 }]),
};
assert_eq!(edge.id, 1);
assert_eq!(edge.source, 1);
assert_eq!(edge.target, 2);
assert_eq!(edge.path, LineString(vec![coord! { x: 0.0, y: 0.0 }, coord! { x: 1.0, y: 1.0 }]));
Fields§
§id: EdgeId
A unique identifier for the edge.
source: NodeId
The identifier of the node where the edge starts.
target: NodeId
The identifier of the node where the edge ends.
length: T
The length of the edge.
path: LineString<T>
The path of the edge, represented as a LineString
.
Trait Implementations§
source§impl<T: Clone + CoordNum> Clone for TransitEdge<T>
impl<T: Clone + CoordNum> Clone for TransitEdge<T>
source§fn clone(&self) -> TransitEdge<T>
fn clone(&self) -> TransitEdge<T>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<T: Debug + CoordNum> Debug for TransitEdge<T>
impl<T: Debug + CoordNum> Debug for TransitEdge<T>
source§impl<T: CoordNum> Default for TransitEdge<T>
impl<T: CoordNum> Default for TransitEdge<T>
source§impl<'de, T> Deserialize<'de> for TransitEdge<T>where
T: Deserialize<'de> + CoordNum,
impl<'de, T> Deserialize<'de> for TransitEdge<T>where T: Deserialize<'de> + CoordNum,
source§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>,
source§impl<T: CoordFloat + FromPrimitive + Sum> EdgeLength<T> for TransitEdge<T>
impl<T: CoordFloat + FromPrimitive + Sum> EdgeLength<T> for TransitEdge<T>
EdgeLength trait implementation for TransitEdge
.
Returns the Euclidean length of the TransitEdge
.
source§impl<T: CoordFloat + Sum> EuclideanLength<T, TransitEdge<T>> for TransitEdge<T>
impl<T: CoordFloat + Sum> EuclideanLength<T, TransitEdge<T>> for TransitEdge<T>
EuclideanLength trait implementation for TransitEdge
.
Returns the Euclidean length of the TransitEdge
.
source§fn euclidean_length(&self) -> T
fn euclidean_length(&self) -> T
source§impl<T: CoordFloat + FromPrimitive> HaversineLength<T, TransitEdge<T>> for TransitEdge<T>
impl<T: CoordFloat + FromPrimitive> HaversineLength<T, TransitEdge<T>> for TransitEdge<T>
HaversineLength trait implementation for TransitEdge
.
Returns the Haversine (great-circle) length of the TransitEdge
.
source§fn haversine_length(&self) -> T
fn haversine_length(&self) -> T
source§impl<T: PartialEq + CoordNum> PartialEq<TransitEdge<T>> for TransitEdge<T>
impl<T: PartialEq + CoordNum> PartialEq<TransitEdge<T>> for TransitEdge<T>
source§fn eq(&self, other: &TransitEdge<T>) -> bool
fn eq(&self, other: &TransitEdge<T>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<T: CoordNum> PathCoordinates<T> for TransitEdge<T>
impl<T: CoordNum> PathCoordinates<T> for TransitEdge<T>
source§fn source_coordinate(&self) -> Coord<T>
fn source_coordinate(&self) -> Coord<T>
source§fn target_coordinate(&self) -> Coord<T>
fn target_coordinate(&self) -> Coord<T>
source§impl<T> Serialize for TransitEdge<T>where
T: Serialize + CoordNum,
impl<T> Serialize for TransitEdge<T>where T: Serialize + CoordNum,
impl<T: Eq + CoordNum> Eq for TransitEdge<T>
impl<T: CoordNum> StructuralEq for TransitEdge<T>
impl<T: CoordNum> StructuralPartialEq for TransitEdge<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for TransitEdge<T>where T: RefUnwindSafe,
impl<T> Send for TransitEdge<T>where T: Send,
impl<T> Sync for TransitEdge<T>where T: Sync,
impl<T> Unpin for TransitEdge<T>where T: Unpin,
impl<T> UnwindSafe for TransitEdge<T>where T: UnwindSafe,
Blanket Implementations§
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.