pub enum ExprKind {
Show 20 variants
Entity {
id: EntityId,
},
LineLineIntersection {
k: VarIndex,
l: VarIndex,
},
AveragePoint {
items: Vec<VarIndex>,
},
CircleCenter {
circle: VarIndex,
},
Sum {
plus: Vec<VarIndex>,
minus: Vec<VarIndex>,
},
Product {
times: Vec<VarIndex>,
by: Vec<VarIndex>,
},
Const {
value: ProcNum,
},
Power {
value: VarIndex,
exponent: CompExponent,
},
PointPointDistance {
p: VarIndex,
q: VarIndex,
},
PointLineDistance {
point: VarIndex,
line: VarIndex,
},
ThreePointAngle {
p: VarIndex,
q: VarIndex,
r: VarIndex,
},
ThreePointAngleDir {
p: VarIndex,
q: VarIndex,
r: VarIndex,
},
TwoLineAngle {
k: VarIndex,
l: VarIndex,
},
PointX {
point: VarIndex,
},
PointY {
point: VarIndex,
},
PointPoint {
p: VarIndex,
q: VarIndex,
},
AngleBisector {
p: VarIndex,
q: VarIndex,
r: VarIndex,
},
ParallelThrough {
point: VarIndex,
line: VarIndex,
},
PerpendicularThrough {
point: VarIndex,
line: VarIndex,
},
ConstructCircle {
center: VarIndex,
radius: VarIndex,
},
}
Variants§
Entity
LineLineIntersection
k and l must be ordered
AveragePoint
Items must be sorted
CircleCenter
Sum
plus and minus must be sorted and must not contain other sums. An aggregated constant, if any, must be at the end.
Product
times and by must be sorted and must not contain other sums. An aggregated constant, if any, must be at the end.
Const
Power
PointPointDistance
p and q must be ordered
PointLineDistance
ThreePointAngle
p and r must be ordered
ThreePointAngleDir
p and r must be ordered
TwoLineAngle
k and l must be ordered
PointX
PointY
PointPoint
Normalized iff p
and q
are in ascending order
AngleBisector
Normalized iff a
and c
are in ascending order (b
must stay in the middle)
ParallelThrough
Always normalized
PerpendicularThrough
Always normalized
ConstructCircle
Implementations§
Trait Implementations§
source§impl FromUnrolled<Circle> for ExprKind
impl FromUnrolled<Circle> for ExprKind
source§impl FromUnrolled<Line> for ExprKind
impl FromUnrolled<Line> for ExprKind
source§impl FromUnrolled<Point> for ExprKind
impl FromUnrolled<Point> for ExprKind
source§impl FromUnrolled<Scalar> for ExprKind
impl FromUnrolled<Scalar> for ExprKind
source§impl Ord for ExprKind
impl Ord for ExprKind
source§impl PartialEq for ExprKind
impl PartialEq for ExprKind
source§impl PartialOrd for ExprKind
impl PartialOrd for ExprKind
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl Reconstruct for ExprKind
impl Reconstruct for ExprKind
fn reconstruct(self, arg0: &mut ReconstructCtx<'_>) -> Self
impl Eq for ExprKind
impl StructuralPartialEq for ExprKind
Auto Trait Implementations§
impl Freeze for ExprKind
impl RefUnwindSafe for ExprKind
impl Send for ExprKind
impl Sync for ExprKind
impl Unpin for ExprKind
impl UnwindSafe for ExprKind
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> CloneWithNode for Twhere
T: Clone,
impl<T> CloneWithNode for Twhere
T: Clone,
fn clone_with_node(&mut self) -> T
fn clone_without_node(&self) -> T
source§impl<T> Convert for T
impl<T> Convert for T
source§fn convert<U>(self, context: &CompileContext) -> Expr<U>where
U: ConvertFrom<T>,
fn convert<U>(self, context: &CompileContext) -> Expr<U>where
U: ConvertFrom<T>,
Errors Read more
source§fn can_convert<U>(&self) -> boolwhere
U: ConvertFrom<T>,
fn can_convert<U>(&self) -> boolwhere
U: ConvertFrom<T>,
Errors Read more