Enum Expr
pub enum Expr {
Show 24 variants
And(ExprAnd),
Any(ExprAny),
Arg(ExprArg),
BinaryOp(ExprBinaryOp),
Cast(ExprCast),
Default,
Error(ExprError),
Exists(ExprExists),
Func(ExprFunc),
InList(ExprInList),
InSubquery(ExprInSubquery),
IsNull(ExprIsNull),
IsVariant(ExprIsVariant),
Let(ExprLet),
Map(ExprMap),
Match(ExprMatch),
Not(ExprNot),
Or(ExprOr),
Project(ExprProject),
Record(ExprRecord),
Reference(ExprReference),
List(ExprList),
Stmt(ExprStmt),
Value(Value),
}Expand description
An expression.
Variants§
And(ExprAnd)
AND a set of binary expressions
Any(ExprAny)
ANY - returns true if any of the items evaluate to true
Arg(ExprArg)
An argument when the expression is a function body
BinaryOp(ExprBinaryOp)
Binary expression
Cast(ExprCast)
Cast an expression to a different type
Default
Suggests that the database should use its default value. Useful for auto-increment fields and other columns with default values.
Error(ExprError)
An error expression that fails evaluation with a message.
Exists(ExprExists)
An exists expression [ NOT ] EXISTS(SELECT ...), used in expressions like
WHERE [ NOT ] EXISTS (SELECT ...).
Func(ExprFunc)
Function call
InList(ExprInList)
In list
InSubquery(ExprInSubquery)
The expression is contained by the given subquery
IsNull(ExprIsNull)
Whether an expression is (or is not) null. This is different from a binary expression because of how databases treat null comparisons.
IsVariant(ExprIsVariant)
Whether an expression evaluates to a specific enum variant.
Let(ExprLet)
A scoped binding expression (transient — inlined before planning)
Map(ExprMap)
Apply an expression to each item in a list
Match(ExprMatch)
A match expression that dispatches on a subject expression
Not(ExprNot)
Negates a boolean expression
Or(ExprOr)
OR a set of binary expressions
Project(ExprProject)
Project an expression
Record(ExprRecord)
Evaluates to a tuple value
Reference(ExprReference)
Reference a value from within the statement itself.
List(ExprList)
A list of expressions of the same type
Stmt(ExprStmt)
Evaluate a sub-statement
Value(Value)
Evaluates to a constant value reference
Implementations§
§impl Expr
impl Expr
pub const TRUE: Expr
pub const FALSE: Expr
pub const DEFAULT: Expr = Expr::Default
pub fn null() -> Expr
pub fn is_value_null(&self) -> bool
pub fn is_value_null(&self) -> bool
Is a value that evaluates to null
pub fn is_unsatisfiable(&self) -> bool
pub fn is_unsatisfiable(&self) -> bool
Returns true if the expression can never evaluate to true.
In SQL’s three-valued logic, both false and null are unsatisfiable:
a filter producing either value will never match any rows.
pub fn is_default(&self) -> bool
pub fn is_default(&self) -> bool
Returns true if the expression is the default expression
pub fn is_stmt(&self) -> bool
pub fn is_binary_op(&self) -> bool
pub fn is_binary_op(&self) -> bool
Returns true if the expression is a binary operation
pub fn is_arg(&self) -> bool
pub fn is_always_non_nullable(&self) -> bool
pub fn is_always_non_nullable(&self) -> bool
Returns true if the expression is always non-nullable.
This method is conservative and only returns true for expressions we can prove are non-nullable.
pub fn into_value(self) -> Value
pub fn into_stmt(self) -> ExprStmt
pub fn is_stable(&self) -> bool
pub fn is_stable(&self) -> bool
Returns true if the expression is stable
An expression is stable if it yields the same value each time it is evaluated
pub fn is_const(&self) -> bool
pub fn is_const(&self) -> bool
Returns true if the expression is a constant expression.
A constant expression is one that does not reference any external data.
This means it contains no Reference, Stmt, or Arg expressions that
reference external inputs.
Arg expressions inside Map bodies with nesting less than the current
map depth are local bindings (bound to the mapped element), not external
inputs, and are therefore considered const in that context.
pub fn is_eval(&self) -> bool
pub fn is_eval(&self) -> bool
Returns true if the expression can be evaluated.
An expression can be evaluated if it doesn’t contain references to external data sources like subqueries or references. Args are allowed since they represent function parameters that can be bound at evaluation time.
pub fn map_projections(&self, f: impl FnMut(&Projection) -> Projection) -> Expr
pub fn entry(&self, path: impl EntryPath) -> Option<Entry<'_>>
pub fn entry_mut(&mut self, path: impl EntryPath) -> EntryMut<'_>
pub fn take(&mut self) -> Expr
pub fn substitute(&mut self, input: impl Input)
§impl Expr
impl Expr
pub fn binary_op( lhs: impl Into<Expr>, op: BinaryOp, rhs: impl Into<Expr>, ) -> Expr
pub fn eq(lhs: impl Into<Expr>, rhs: impl Into<Expr>) -> Expr
pub fn is_eq(&self) -> bool
pub fn is_eq(&self) -> bool
Returns true if the expression is a binary expression with the equality operator
pub fn ge(lhs: impl Into<Expr>, rhs: impl Into<Expr>) -> Expr
pub fn gt(lhs: impl Into<Expr>, rhs: impl Into<Expr>) -> Expr
pub fn le(lhs: impl Into<Expr>, rhs: impl Into<Expr>) -> Expr
pub fn lt(lhs: impl Into<Expr>, rhs: impl Into<Expr>) -> Expr
pub fn ne(lhs: impl Into<Expr>, rhs: impl Into<Expr>) -> Expr
§impl Expr
impl Expr
pub fn in_subquery(lhs: impl Into<Expr>, rhs: impl Into<Query>) -> Expr
pub fn is_in_subquery(&self) -> bool
§impl Expr
impl Expr
pub fn list<T>(items: impl IntoIterator<Item = T>) -> Expr
pub fn list_from_vec(items: Vec<Expr>) -> Expr
pub fn is_list(&self) -> bool
pub fn is_list_empty(&self) -> bool
pub fn expect_list(&self) -> &ExprList
pub fn expect_list_mut(&mut self) -> &mut ExprList
pub fn unwrap_list(self) -> ExprList
§impl Expr
impl Expr
pub fn project(base: impl Into<Expr>, projection: impl Into<Projection>) -> Expr
pub fn arg_project( expr_arg: impl Into<ExprArg>, projection: impl Into<Projection>, ) -> Expr
pub fn is_project(&self) -> bool
pub fn as_project(&self) -> &ExprProject
§impl Expr
impl Expr
pub fn record<T>(items: impl IntoIterator<Item = T>) -> Expr
pub fn record_from_vec(fields: Vec<Expr>) -> Expr
pub fn is_record(&self) -> bool
pub fn as_record(&self) -> Option<&ExprRecord>
pub fn as_record_unwrap(&self) -> &ExprRecord
pub fn as_record_mut(&mut self) -> &mut ExprRecord
pub fn into_record(self) -> ExprRecord
pub fn record_len(&self) -> Option<usize>
pub fn into_record_items(self) -> Option<impl Iterator<Item = Expr>>
§impl Expr
impl Expr
pub fn is_expr_reference(&self) -> bool
pub fn ref_self_field(field: impl Into<FieldId>) -> Expr
pub fn ref_self_field(field: impl Into<FieldId>) -> Expr
Creates an expression that references a field in the current query.
This creates an ExprReference::Field with nesting = 0, meaning it
references a field in the current query scope rather than an outer query.
§Arguments
field- A field identifier that can be converted into aFieldId
§Returns
An Expr::Reference containing an ExprReference::Field that points to
the specified field in the current query’s relation.
pub fn ref_field(nesting: usize, field: impl Into<FieldId>) -> Expr
pub fn ref_field(nesting: usize, field: impl Into<FieldId>) -> Expr
Create a reference to a field at a specified nesting level
pub fn ref_parent_field(field: impl Into<FieldId>) -> Expr
pub fn ref_parent_field(field: impl Into<FieldId>) -> Expr
Create a reference to a field one level up
pub fn is_field(&self) -> bool
pub fn ref_parent_model() -> Expr
pub fn ref_parent_model() -> Expr
Create a model reference to the parent model
pub fn ref_ancestor_model(nesting: usize) -> Expr
pub fn ref_ancestor_model(nesting: usize) -> Expr
Create a model reference to the specified nesting level
pub fn column(column: impl Into<ExprReference>) -> Expr
pub fn is_column(&self) -> bool
pub fn as_expr_reference(&self) -> Option<&ExprReference>
pub fn as_expr_reference_unwrap(&self) -> &ExprReference
pub fn as_expr_column(&self) -> Option<&ExprColumn>
pub fn as_expr_column_unwrap(&self) -> &ExprColumn
§impl Expr
impl Expr
pub fn count_star() -> Expr
§impl Expr
impl Expr
pub fn last_insert_id() -> Expr
Trait Implementations§
§impl From<&ExprColumn> for Expr
impl From<&ExprColumn> for Expr
§fn from(value: &ExprColumn) -> Expr
fn from(value: &ExprColumn) -> Expr
§impl From<&ExprReference> for Expr
impl From<&ExprReference> for Expr
§fn from(value: &ExprReference) -> Expr
fn from(value: &ExprReference) -> Expr
§impl From<ExprBinaryOp> for Expr
impl From<ExprBinaryOp> for Expr
§fn from(value: ExprBinaryOp) -> Expr
fn from(value: ExprBinaryOp) -> Expr
§impl From<ExprColumn> for Expr
impl From<ExprColumn> for Expr
§fn from(value: ExprColumn) -> Expr
fn from(value: ExprColumn) -> Expr
§impl From<ExprExists> for Expr
impl From<ExprExists> for Expr
§fn from(value: ExprExists) -> Expr
fn from(value: ExprExists) -> Expr
§impl From<ExprInList> for Expr
impl From<ExprInList> for Expr
§fn from(value: ExprInList) -> Expr
fn from(value: ExprInList) -> Expr
§impl From<ExprInSubquery> for Expr
impl From<ExprInSubquery> for Expr
§fn from(value: ExprInSubquery) -> Expr
fn from(value: ExprInSubquery) -> Expr
§impl From<ExprIsNull> for Expr
impl From<ExprIsNull> for Expr
§fn from(value: ExprIsNull) -> Expr
fn from(value: ExprIsNull) -> Expr
§impl From<ExprIsVariant> for Expr
impl From<ExprIsVariant> for Expr
§fn from(value: ExprIsVariant) -> Expr
fn from(value: ExprIsVariant) -> Expr
§impl From<ExprProject> for Expr
impl From<ExprProject> for Expr
§fn from(value: ExprProject) -> Expr
fn from(value: ExprProject) -> Expr
§impl From<ExprRecord> for Expr
impl From<ExprRecord> for Expr
§fn from(value: ExprRecord) -> Expr
fn from(value: ExprRecord) -> Expr
§impl From<ExprReference> for Expr
impl From<ExprReference> for Expr
§fn from(value: ExprReference) -> Expr
fn from(value: ExprReference) -> Expr
§impl From<FuncLastInsertId> for Expr
impl From<FuncLastInsertId> for Expr
§fn from(value: FuncLastInsertId) -> Expr
fn from(value: FuncLastInsertId) -> Expr
§impl<const N: usize> Like<[Value; N]> for Expr
Like implementation for expressions against arrays of Values
impl<const N: usize> Like<[Value; N]> for Expr
Like implementation for expressions against arrays of Values
§impl<T1, T2, T3> Like<(T1, T2, T3)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3>,
impl<T1, T2, T3> Like<(T1, T2, T3)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3>,
§fn like(&self, pattern: &(T1, T2, T3)) -> bool
fn like(&self, pattern: &(T1, T2, T3)) -> bool
§impl<T1, T2, T3, T4> Like<(T1, T2, T3, T4)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4>,
impl<T1, T2, T3, T4> Like<(T1, T2, T3, T4)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4>,
§fn like(&self, pattern: &(T1, T2, T3, T4)) -> bool
fn like(&self, pattern: &(T1, T2, T3, T4)) -> bool
§impl<T1, T2, T3, T4, T5> Like<(T1, T2, T3, T4, T5)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5>,
impl<T1, T2, T3, T4, T5> Like<(T1, T2, T3, T4, T5)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5>,
§fn like(&self, pattern: &(T1, T2, T3, T4, T5)) -> bool
fn like(&self, pattern: &(T1, T2, T3, T4, T5)) -> bool
§impl<T1, T2, T3, T4, T5, T6> Like<(T1, T2, T3, T4, T5, T6)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6>,
impl<T1, T2, T3, T4, T5, T6> Like<(T1, T2, T3, T4, T5, T6)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6>,
§fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6)) -> bool
fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6)) -> bool
§impl<T1, T2, T3, T4, T5, T6, T7> Like<(T1, T2, T3, T4, T5, T6, T7)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7>,
impl<T1, T2, T3, T4, T5, T6, T7> Like<(T1, T2, T3, T4, T5, T6, T7)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7>,
§fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7)) -> bool
fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7)) -> bool
§impl<T1, T2, T3, T4, T5, T6, T7, T8> Like<(T1, T2, T3, T4, T5, T6, T7, T8)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8>,
impl<T1, T2, T3, T4, T5, T6, T7, T8> Like<(T1, T2, T3, T4, T5, T6, T7, T8)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8>,
§fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8)) -> bool
fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8)) -> bool
§impl<T1, T2, T3, T4, T5, T6, T7, T8, T9> Like<(T1, T2, T3, T4, T5, T6, T7, T8, T9)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8> + Like<T9>,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9> Like<(T1, T2, T3, T4, T5, T6, T7, T8, T9)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8> + Like<T9>,
§fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8, T9)) -> bool
fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8, T9)) -> bool
§impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Like<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8> + Like<T9> + Like<T10>,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Like<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8> + Like<T9> + Like<T10>,
§fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)) -> bool
fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)) -> bool
§impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Like<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8> + Like<T9> + Like<T10> + Like<T11>,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Like<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8> + Like<T9> + Like<T10> + Like<T11>,
§fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)) -> bool
fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)) -> bool
§impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Like<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8> + Like<T9> + Like<T10> + Like<T11> + Like<T12>,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Like<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> for Exprwhere
Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8> + Like<T9> + Like<T10> + Like<T11> + Like<T12>,
§fn like(
&self,
pattern: &(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12),
) -> bool
fn like( &self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12), ) -> bool
§impl<T0, T1, T2> PartialEq<(T0, T1, T2)> for Expr
impl<T0, T1, T2> PartialEq<(T0, T1, T2)> for Expr
§impl<T0, T1, T2, T3> PartialEq<(T0, T1, T2, T3)> for Expr
impl<T0, T1, T2, T3> PartialEq<(T0, T1, T2, T3)> for Expr
§impl<T0, T1, T2, T3, T4> PartialEq<(T0, T1, T2, T3, T4)> for Expr
impl<T0, T1, T2, T3, T4> PartialEq<(T0, T1, T2, T3, T4)> for Expr
§impl<T0, T1, T2, T3, T4, T5> PartialEq<(T0, T1, T2, T3, T4, T5)> for Expr
impl<T0, T1, T2, T3, T4, T5> PartialEq<(T0, T1, T2, T3, T4, T5)> for Expr
§impl<T0, T1, T2, T3, T4, T5, T6> PartialEq<(T0, T1, T2, T3, T4, T5, T6)> for Expr
impl<T0, T1, T2, T3, T4, T5, T6> PartialEq<(T0, T1, T2, T3, T4, T5, T6)> for Expr
§impl<T0, T1, T2, T3, T4, T5, T6, T7> PartialEq<(T0, T1, T2, T3, T4, T5, T6, T7)> for Expr
impl<T0, T1, T2, T3, T4, T5, T6, T7> PartialEq<(T0, T1, T2, T3, T4, T5, T6, T7)> for Expr
§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> PartialEq<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> for Exprwhere
Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8>,
Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> PartialEq<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> for Exprwhere
Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8>,
Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8>,
§fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6, T7, T8)) -> bool
fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6, T7, T8)) -> bool
self and other values to be equal, and is used by ==.§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> PartialEq<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for Exprwhere
Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8> + PartialEq<T9>,
Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8> + PartialEq<T9>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> PartialEq<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for Exprwhere
Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8> + PartialEq<T9>,
Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8> + PartialEq<T9>,
§fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)) -> bool
fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)) -> bool
self and other values to be equal, and is used by ==.§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> PartialEq<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for Exprwhere
Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8> + PartialEq<T9> + PartialEq<T10>,
Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8> + PartialEq<T9> + PartialEq<T10>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> PartialEq<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for Exprwhere
Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8> + PartialEq<T9> + PartialEq<T10>,
Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8> + PartialEq<T9> + PartialEq<T10>,
§fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)) -> bool
fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)) -> bool
self and other values to be equal, and is used by ==.§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> PartialEq<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for Exprwhere
Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8> + PartialEq<T9> + PartialEq<T10> + PartialEq<T11>,
Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8> + PartialEq<T9> + PartialEq<T10> + PartialEq<T11>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> PartialEq<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for Exprwhere
Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8> + PartialEq<T9> + PartialEq<T10> + PartialEq<T11>,
Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7> + PartialEq<T8> + PartialEq<T9> + PartialEq<T10> + PartialEq<T11>,
§fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)) -> bool
fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)) -> bool
self and other values to be equal, and is used by ==.