pub enum PathSegment {
Line {
end: Point3d<LengthUnit>,
relative: bool,
},
Arc {
center: Point2d<LengthUnit>,
radius: LengthUnit,
start: Angle,
end: Angle,
relative: bool,
},
Bezier {
control1: Point3d<LengthUnit>,
control2: Point3d<LengthUnit>,
end: Point3d<LengthUnit>,
relative: bool,
},
TangentialArc {
radius: LengthUnit,
offset: Angle,
},
TangentialArcTo {
to: Point3d<LengthUnit>,
angle_snap_increment: Option<Angle>,
},
ArcTo {
interior: Point3d<LengthUnit>,
end: Point3d<LengthUnit>,
relative: bool,
},
CircularInvolute {
start_radius: LengthUnit,
end_radius: LengthUnit,
angle: Angle,
reverse: bool,
},
}
Expand description
A segment of a path. Paths are composed of many segments.
Variants§
Line
A straight line segment. Goes from the current path “pen” to the given endpoint.
Fields
end: Point3d<LengthUnit>
End point of the line.
Arc
A circular arc segment. Arcs can be drawn clockwise when start > end.
Bezier
A cubic bezier curve segment. Start at the end of the current line, go through control point 1 and 2, then end at a given point.
Fields
control1: Point3d<LengthUnit>
First control point.
control2: Point3d<LengthUnit>
Second control point.
end: Point3d<LengthUnit>
Final control point.
TangentialArc
Adds a tangent arc from current pen position with the given radius and angle.
Fields
radius: LengthUnit
Radius of the arc. Not to be confused with Raiders of the Lost Ark.
TangentialArcTo
Adds a tangent arc from current pen position to the new position. Arcs will choose a clockwise or counter-clockwise direction based on the arc end position.
Fields
to: Point3d<LengthUnit>
Where the arc should end. Must lie in the same plane as the current path pen position. Must not be colinear with current path pen position.
ArcTo
Adds an arc from the current position that goes through the given interior point and ends at the given end position
Fields
interior: Point3d<LengthUnit>
Interior point of the arc.
end: Point3d<LengthUnit>
End point of the arc.
CircularInvolute
Adds a circular involute from the current position that goes through the given end_radius and is rotated around the current point by angle.
Fields
start_radius: LengthUnit
The involute is described between two circles, start_radius is the radius of the inner circle.
end_radius: LengthUnit
The involute is described between two circles, end_radius is the radius of the outer circle.
Trait Implementations§
Source§impl Clone for PathSegment
impl Clone for PathSegment
Source§fn clone(&self) -> PathSegment
fn clone(&self) -> PathSegment
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for PathSegment
impl Debug for PathSegment
Source§impl<'de> Deserialize<'de> for PathSegment
impl<'de> Deserialize<'de> for PathSegment
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 JsonSchema for PathSegment
impl JsonSchema for PathSegment
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moreSource§impl PartialEq for PathSegment
impl PartialEq for PathSegment
Source§impl Serialize for PathSegment
impl Serialize for PathSegment
Source§impl TS for PathSegment
impl TS for PathSegment
Source§type WithoutGenerics = PathSegment
type WithoutGenerics = PathSegment
WithoutGenerics
should just be Self
.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy
or ()
.
The only requirement for these dummy types is that EXPORT_TO
must be None
. Read moreSource§type OptionInnerType = PathSegment
type OptionInnerType = PathSegment
std::option::Option<T>
, then this associated type is set to T
.
All other implementations of TS
should set this type to Self
instead.Source§fn docs() -> Option<String>
fn docs() -> Option<String>
TS
is derived, docs are
automatically read from your doc comments or #[doc = ".."]
attributesSource§fn decl_concrete() -> String
fn decl_concrete() -> String
TS::decl()
.
If this type is not generic, then this function is equivalent to TS::decl()
.Source§fn decl() -> String
fn decl() -> String
type User = { user_id: number, ... }
.
This function will panic if the type has no declaration. Read moreSource§fn inline() -> String
fn inline() -> String
{ user_id: number }
.
This function will panic if the type cannot be inlined.Source§fn inline_flattened() -> String
fn inline_flattened() -> String
This function will panic if the type cannot be flattened.
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
T
should be exported.The returned path does not include the base directory from
TS_RS_EXPORT_DIR
. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn dependencies() -> Vec<Dependency>where
Self: 'static,
fn dependencies() -> Vec<Dependency>where
Self: 'static,
Source§fn export() -> Result<(), ExportError>where
Self: 'static,
fn export() -> Result<(), ExportError>where
Self: 'static,
TS::export_all
. Read moreSource§fn export_all() -> Result<(), ExportError>where
Self: 'static,
fn export_all() -> Result<(), ExportError>where
Self: 'static,
To export only this type, without its dependencies, use
TS::export
. Read moreSource§fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
To export only this type, without its dependencies, use
TS::export
. Read moreSource§fn export_to_string() -> Result<String, ExportError>where
Self: 'static,
fn export_to_string() -> Result<String, ExportError>where
Self: 'static,
impl Copy for PathSegment
impl StructuralPartialEq for PathSegment
Auto Trait Implementations§
impl Freeze for PathSegment
impl RefUnwindSafe for PathSegment
impl Send for PathSegment
impl Sync for PathSegment
impl Unpin for PathSegment
impl UnwindSafe for PathSegment
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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