pub struct SketchConstraintStatus {
pub name: String,
pub status: ConstraintKind,
pub free_count: usize,
pub conflict_count: usize,
pub total_count: usize,
}Expand description
Per-sketch summary of constraint freedom analysis.
A sketch with no countable segments (total_count == 0) is reported as
ConstraintKind::FullyConstrained. This is vacuously true — there are
no free or conflicting segments. Callers can check total_count == 0 to
distinguish this from a genuinely constrained sketch.
Fields§
§name: StringName of the variable the sketch was assigned to, for example “sketch001”. This is the nearest enclosing declaration at the point the sketch was created, which is not always the sketch’s own name:
- Empty for a sketch written as an expression statement, because there is no enclosing declaration.
- The outer variable’s name for a sketch passed straight into another
call, as in
part = extrude(sketch(on = XY) { ... }, length = 10). - The same name for two sketches, when a function body declares the sketch and is called more than once.
This name is accepted by ExecOutcome::render_sketch_png. Because
the report carries no other sketch identifier, rendering returns an
ambiguity error when multiple sketches share a name.
status: ConstraintKindOverall constraint status derived from per-segment freedom.
free_count: usizeNumber of segments that are under-constrained (free to move).
conflict_count: usizeNumber of segments that are over-constrained (conflicting constraints).
total_count: usizeTotal number of segments analyzed.
Trait Implementations§
Source§impl Clone for SketchConstraintStatus
impl Clone for SketchConstraintStatus
Source§fn clone(&self) -> SketchConstraintStatus
fn clone(&self) -> SketchConstraintStatus
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SketchConstraintStatus
impl Debug for SketchConstraintStatus
Source§impl<'de> Deserialize<'de> for SketchConstraintStatus
impl<'de> Deserialize<'de> for SketchConstraintStatus
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 PartialEq for SketchConstraintStatus
impl PartialEq for SketchConstraintStatus
Source§impl Serialize for SketchConstraintStatus
impl Serialize for SketchConstraintStatus
impl StructuralPartialEq for SketchConstraintStatus
Auto Trait Implementations§
impl Freeze for SketchConstraintStatus
impl RefUnwindSafe for SketchConstraintStatus
impl Send for SketchConstraintStatus
impl Sync for SketchConstraintStatus
impl Unpin for SketchConstraintStatus
impl UnsafeUnpin for SketchConstraintStatus
impl UnwindSafe for SketchConstraintStatus
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
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>,
impl<T, U> Imply<T> for U
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 moreSource§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = !
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.