#[non_exhaustive]pub struct RunStation {
pub station: Station,
pub seam: SeamSide,
pub seam_window: f64,
pub basis_end: Option<BasisEnd>,
}Expand description
A station of an offset run with the side of a seam it reads and its
seam-snapping window (#301): the general form of the plain Station
a CurveRelation::OffsetByStations takes, used by
CurveRelation::OffsetsAtStations. It may also stand at its basis’s
start or end, its distance measured by the kernel (#303).
Built with RunStation::new, RunStation::at_basis_start,
RunStation::at_basis_end and the with_ methods, so that fields can
be added without breaking callers. See the
module documentation for how a
run reads the side and the window, and
its #303 section for the
basis’s ends.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.station: StationDistance along the basis and offsets in its frame there.
seam: SeamSideThe piece read where the station stands on a seam its run does not
decide: SeamSide::Outgoing unless set by
Self::with_seam_side. Omitted from the wire format when it is
Outgoing.
seam_window: f64The seam-snapping window (#294): a station within this distance of
one seam of the basis stands ON it. 0 unless set by
Self::with_seam_window. Omitted from the wire format when it is
+0.0.
basis_end: Option<BasisEnd>The end of the basis the station stands at, its distance measured
by the kernel (#303): None, the default, for the stated
station.distance; otherwise that distance is 0 and not read
(see the
module documentation).
Format 1.3 of the graph’s wire format (ADR 0085): omitted when it
is None, and an absent end reads as None.
Implementations§
Source§impl RunStation
impl RunStation
Sourcepub const fn new(station: Station) -> RunStation
pub const fn new(station: Station) -> RunStation
station, reading the outgoing piece on a seam, with no window.
Sourcepub const fn at_basis_start(offsets: StationOffsets) -> RunStation
pub const fn at_basis_start(offsets: StationOffsets) -> RunStation
A station at the basis’s start with offsets (#303): distance 0,
reading the outgoing piece, with no window.
Sourcepub const fn at_basis_end(offsets: StationOffsets) -> RunStation
pub const fn at_basis_end(offsets: StationOffsets) -> RunStation
A station at the basis’s end with offsets (#303), reading the
outgoing piece, with no window: its distance is the basis’s length
by the kernel’s own measure, which the caller need not know (see
the module documentation).
Sourcepub const fn with_seam_side(self, side: SeamSide) -> RunStation
pub const fn with_seam_side(self, side: SeamSide) -> RunStation
The same station reading side of a seam it stands on, where its
run does not decide the side.
Sourcepub const fn with_seam_window(self, window: f64) -> RunStation
pub const fn with_seam_window(self, window: f64) -> RunStation
The same station snapping onto a seam of its basis within window,
in the basis’s station measure, by the #294 rule. A negative or
non-finite window is refused when the node is pushed.
Trait Implementations§
Source§impl Clone for RunStation
impl Clone for RunStation
Source§fn clone(&self) -> RunStation
fn clone(&self) -> RunStation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for RunStation
Source§impl Debug for RunStation
impl Debug for RunStation
Source§impl<'de> Deserialize<'de> for RunStation
impl<'de> Deserialize<'de> for RunStation
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<RunStation, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<RunStation, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl From<Station> for RunStation
impl From<Station> for RunStation
Source§fn from(station: Station) -> RunStation
fn from(station: Station) -> RunStation
The plain station: the outgoing piece, no window, what a station of
an OffsetByStations
means.
Source§impl PartialEq for RunStation
impl PartialEq for RunStation
Source§impl Serialize for RunStation
impl Serialize for RunStation
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for RunStation
Auto Trait Implementations§
impl Freeze for RunStation
impl RefUnwindSafe for RunStation
impl Send for RunStation
impl Sync for RunStation
impl Unpin for RunStation
impl UnsafeUnpin for RunStation
impl UnwindSafe for RunStation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more