#[non_exhaustive]pub enum Profile {
Rectangle(RectangleProfile),
Circle(CircleProfile),
Ellipse(EllipseProfile),
Section(SectionProfile),
Contour(ContourProfile),
Derived {
basis: Box<Profile>,
transform: Transform2,
},
Composite(Vec<Profile>),
CenterLine(CenterLineProfile),
}Expand description
Format-neutral profile representation.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Rectangle(RectangleProfile)
Rectangle or rounded rectangle.
Circle(CircleProfile)
Circle or annulus.
Ellipse(EllipseProfile)
Ellipse.
Section(SectionProfile)
Structural parameterized section.
Contour(ContourProfile)
Arbitrary exact contour with holes.
Derived
Profile transformed from another profile.
Placement is recorded as a transform over the exact basis, not by transforming tessellated points, so a placed circle stays a circle.
Composite(Vec<Profile>)
Ordered collection of profiles used as one section.
CenterLine(CenterLineProfile)
Open path plus a constant width, centred on the path.
Distinct from Profile::Contour because the area is implied by an
offset rather than bounded explicitly. A consumer that cannot offset
must refuse this rather than treat the path as a boundary: the path is
open, so reading it as a contour yields a degenerate zero-area region.
Trait Implementations§
impl StructuralPartialEq for Profile
Auto Trait Implementations§
impl Freeze for Profile
impl RefUnwindSafe for Profile
impl Send for Profile
impl Sync for Profile
impl Unpin for Profile
impl UnwindSafe for Profile
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
Mutably borrows from an owned value. Read more