Expr

Enum Expr 

Source
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§

Source§

impl Expr

Source

pub fn eval(&self, input: impl Input) -> Result<Value>

Source

pub fn eval_bool(&self, input: impl Input) -> Result<bool>

Source

pub fn eval_const(&self) -> Result<Value>

Source§

impl Expr

Source

pub const TRUE: Expr

Source

pub const FALSE: Expr

Source

pub const DEFAULT: Expr = Expr::Default

Source

pub fn null() -> Self

Source

pub fn is_value_null(&self) -> bool

Is a value that evaluates to null

Source

pub fn is_true(&self) -> bool

Returns true if the expression is the true boolean expression

Source

pub fn is_false(&self) -> bool

Returns true if the expression is the false boolean expression

Source

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.

Source

pub fn is_default(&self) -> bool

Returns true if the expression is the default expression

Source

pub fn is_value(&self) -> bool

Returns true if the expression is a constant value.

Source

pub fn is_stmt(&self) -> bool

Source

pub fn is_binary_op(&self) -> bool

Returns true if the expression is a binary operation

Source

pub fn is_arg(&self) -> bool

Source

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.

Source

pub fn into_value(self) -> Value

Source

pub fn into_stmt(self) -> ExprStmt

Source

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

Source

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.

Source

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.

Source

pub fn map_projections(&self, f: impl FnMut(&Projection) -> Projection) -> Self

Source

pub fn entry(&self, path: impl EntryPath) -> Option<Entry<'_>>

Source

pub fn entry_mut(&mut self, path: impl EntryPath) -> EntryMut<'_>

Source

pub fn take(&mut self) -> Self

Source

pub fn substitute(&mut self, input: impl Input)

Source§

impl Expr

Source

pub fn and(lhs: impl Into<Self>, rhs: impl Into<Self>) -> Self

Source

pub fn and_from_vec(operands: Vec<Self>) -> Self

Source§

impl Expr

Source

pub fn any(expr: impl Into<Expr>) -> Self

Creates an Any expression that returns true if any item in the list evaluates to true.

Returns false if the list is empty (matching Rust’s [].iter().any() semantics).

Source

pub fn is_any(&self) -> bool

Returns true if this is an Any expression

Source§

impl Expr

Source

pub fn arg(expr_arg: impl Into<ExprArg>) -> Self

Source§

impl Expr

Source

pub fn binary_op( lhs: impl Into<Self>, op: BinaryOp, rhs: impl Into<Self>, ) -> Self

Source

pub fn eq(lhs: impl Into<Self>, rhs: impl Into<Self>) -> Self

Source

pub fn is_eq(&self) -> bool

Returns true if the expression is a binary expression with the equality operator

Source

pub fn ge(lhs: impl Into<Self>, rhs: impl Into<Self>) -> Self

Source

pub fn gt(lhs: impl Into<Self>, rhs: impl Into<Self>) -> Self

Source

pub fn le(lhs: impl Into<Self>, rhs: impl Into<Self>) -> Self

Source

pub fn lt(lhs: impl Into<Self>, rhs: impl Into<Self>) -> Self

Source

pub fn ne(lhs: impl Into<Self>, rhs: impl Into<Self>) -> Self

Source§

impl Expr

Source

pub fn cast(expr: impl Into<Self>, ty: impl Into<Type>) -> Self

Source

pub fn is_cast(&self) -> bool

Source§

impl Expr

Source

pub fn error(message: impl Into<String>) -> Self

Source§

impl Expr

Source

pub fn exists(subquery: impl Into<Query>) -> Expr

Source

pub fn not_exists(subquery: impl Into<Query>) -> Expr

Source§

impl Expr

Source

pub fn in_list(lhs: impl Into<Self>, rhs: impl Into<Self>) -> Self

Source§

impl Expr

Source

pub fn in_subquery(lhs: impl Into<Self>, rhs: impl Into<Query>) -> Self

Source

pub fn is_in_subquery(&self) -> bool

Source§

impl Expr

Source

pub fn is_null(expr: impl Into<Self>) -> Self

Source

pub fn is_not_null(expr: impl Into<Self>) -> Self

Source§

impl Expr

Source

pub fn is_variant(expr: impl Into<Self>, variant: VariantId) -> Self

Source§

impl Expr

Source

pub fn list<T>(items: impl IntoIterator<Item = T>) -> Self
where T: Into<Self>,

Source

pub fn list_from_vec(items: Vec<Self>) -> Self

Source

pub fn is_list(&self) -> bool

Source

pub fn is_list_empty(&self) -> bool

Source

pub fn expect_list(&self) -> &ExprList

Source

pub fn expect_list_mut(&mut self) -> &mut ExprList

Source

pub fn unwrap_list(self) -> ExprList

Source§

impl Expr

Source

pub fn map(base: impl Into<Self>, map: impl Into<Self>) -> Self

Source

pub fn as_map(&self) -> &ExprMap

Source§

impl Expr

Source

pub fn match_expr( subject: impl Into<Self>, arms: Vec<MatchArm>, else_expr: impl Into<Self>, ) -> Self

Creates a Match expression that dispatches on subject.

Source§

impl Expr

Source

pub fn not(expr: impl Into<Self>) -> Self

Creates a Not expression that negates the given expression.

Source

pub fn is_not(&self) -> bool

Returns true if this is a Not expression.

Source§

impl Expr

Source

pub fn or(lhs: impl Into<Self>, rhs: impl Into<Self>) -> Self

Source

pub fn or_from_vec(operands: Vec<Self>) -> Self

Source§

impl Expr

Source

pub fn project(base: impl Into<Self>, projection: impl Into<Projection>) -> Self

Source

pub fn arg_project( expr_arg: impl Into<ExprArg>, projection: impl Into<Projection>, ) -> Self

Source

pub fn is_project(&self) -> bool

Source

pub fn as_project(&self) -> &ExprProject

Source§

impl Expr

Source

pub fn record<T>(items: impl IntoIterator<Item = T>) -> Self
where T: Into<Self>,

Source

pub fn record_from_vec(fields: Vec<Self>) -> Self

Source

pub fn is_record(&self) -> bool

Source

pub fn as_record(&self) -> Option<&ExprRecord>

Source

pub fn as_record_unwrap(&self) -> &ExprRecord

Source

pub fn as_record_mut(&mut self) -> &mut ExprRecord

Source

pub fn into_record(self) -> ExprRecord

Source

pub fn record_len(&self) -> Option<usize>

Source

pub fn into_record_items(self) -> Option<impl Iterator<Item = Expr>>

Source§

impl Expr

Source

pub fn is_expr_reference(&self) -> bool

Source

pub fn ref_self_field(field: impl Into<FieldId>) -> Self

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 a FieldId
§Returns

An Expr::Reference containing an ExprReference::Field that points to the specified field in the current query’s relation.

Source

pub fn ref_field(nesting: usize, field: impl Into<FieldId>) -> Self

Create a reference to a field at a specified nesting level

Source

pub fn ref_parent_field(field: impl Into<FieldId>) -> Self

Create a reference to a field one level up

Source

pub fn is_field(&self) -> bool

Source

pub fn ref_parent_model() -> Self

Create a model reference to the parent model

Source

pub fn ref_ancestor_model(nesting: usize) -> Self

Create a model reference to the specified nesting level

Source

pub fn column(column: impl Into<ExprReference>) -> Self

Source

pub fn is_column(&self) -> bool

Source

pub fn as_expr_reference(&self) -> Option<&ExprReference>

Source

pub fn as_expr_reference_unwrap(&self) -> &ExprReference

Source

pub fn as_expr_column(&self) -> Option<&ExprColumn>

Source

pub fn as_expr_column_unwrap(&self) -> &ExprColumn

Source§

impl Expr

Source

pub fn stmt(stmt: impl Into<Statement>) -> Self

Source§

impl Expr

Source

pub fn count_star() -> Self

Source§

impl Expr

Source

pub fn last_insert_id() -> Self

Trait Implementations§

Source§

impl Clone for Expr

Source§

fn clone(&self) -> Expr

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Expr

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> From<&'a Expr> for Entry<'a>

Source§

fn from(value: &'a Expr) -> Self

Converts to this type from the input type.
Source§

impl From<&ExprColumn> for Expr

Source§

fn from(value: &ExprColumn) -> Self

Converts to this type from the input type.
Source§

impl From<&ExprReference> for Expr

Source§

fn from(value: &ExprReference) -> Self

Converts to this type from the input type.
Source§

impl From<&String> for Expr

Source§

fn from(value: &String) -> Self

Converts to this type from the input type.
Source§

impl From<&i64> for Expr

Source§

fn from(value: &i64) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a mut Expr> for EntryMut<'a>

Source§

fn from(value: &'a mut Expr) -> Self

Converts to this type from the input type.
Source§

impl From<&str> for Expr

Source§

fn from(value: &str) -> Self

Converts to this type from the input type.
Source§

impl<E1, E2> From<(E1, E2)> for Expr
where E1: Into<Self>, E2: Into<Self>,

Source§

fn from(value: (E1, E2)) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<Entry<'a>> for Expr

Source§

fn from(value: Entry<'a>) -> Self

Converts to this type from the input type.
Source§

impl From<Expr> for Returning

Source§

fn from(value: Expr) -> Self

Converts to this type from the input type.
Source§

impl From<Expr> for Values

Source§

fn from(value: Expr) -> Self

Converts to this type from the input type.
Source§

impl From<ExprAnd> for Expr

Source§

fn from(value: ExprAnd) -> Self

Converts to this type from the input type.
Source§

impl From<ExprAny> for Expr

Source§

fn from(value: ExprAny) -> Self

Converts to this type from the input type.
Source§

impl From<ExprArg> for Expr

Source§

fn from(value: ExprArg) -> Self

Converts to this type from the input type.
Source§

impl From<ExprBinaryOp> for Expr

Source§

fn from(value: ExprBinaryOp) -> Self

Converts to this type from the input type.
Source§

impl From<ExprCast> for Expr

Source§

fn from(value: ExprCast) -> Self

Converts to this type from the input type.
Source§

impl From<ExprColumn> for Expr

Source§

fn from(value: ExprColumn) -> Self

Converts to this type from the input type.
Source§

impl From<ExprError> for Expr

Source§

fn from(value: ExprError) -> Self

Converts to this type from the input type.
Source§

impl From<ExprExists> for Expr

Source§

fn from(value: ExprExists) -> Self

Converts to this type from the input type.
Source§

impl From<ExprFunc> for Expr

Source§

fn from(value: ExprFunc) -> Self

Converts to this type from the input type.
Source§

impl From<ExprInList> for Expr

Source§

fn from(value: ExprInList) -> Self

Converts to this type from the input type.
Source§

impl From<ExprInSubquery> for Expr

Source§

fn from(value: ExprInSubquery) -> Self

Converts to this type from the input type.
Source§

impl From<ExprIsNull> for Expr

Source§

fn from(value: ExprIsNull) -> Self

Converts to this type from the input type.
Source§

impl From<ExprIsVariant> for Expr

Source§

fn from(value: ExprIsVariant) -> Self

Converts to this type from the input type.
Source§

impl From<ExprLet> for Expr

Source§

fn from(value: ExprLet) -> Self

Converts to this type from the input type.
Source§

impl From<ExprList> for Expr

Source§

fn from(value: ExprList) -> Self

Converts to this type from the input type.
Source§

impl From<ExprMap> for Expr

Source§

fn from(value: ExprMap) -> Self

Converts to this type from the input type.
Source§

impl From<ExprMatch> for Expr

Source§

fn from(value: ExprMatch) -> Self

Converts to this type from the input type.
Source§

impl From<ExprNot> for Expr

Source§

fn from(value: ExprNot) -> Self

Converts to this type from the input type.
Source§

impl From<ExprOr> for Expr

Source§

fn from(value: ExprOr) -> Self

Converts to this type from the input type.
Source§

impl From<ExprProject> for Expr

Source§

fn from(value: ExprProject) -> Self

Converts to this type from the input type.
Source§

impl From<ExprRecord> for Expr

Source§

fn from(value: ExprRecord) -> Self

Converts to this type from the input type.
Source§

impl From<ExprReference> for Expr

Source§

fn from(value: ExprReference) -> Self

Converts to this type from the input type.
Source§

impl From<ExprStmt> for Expr

Source§

fn from(value: ExprStmt) -> Self

Converts to this type from the input type.
Source§

impl From<FuncCount> for Expr

Source§

fn from(value: FuncCount) -> Self

Converts to this type from the input type.
Source§

impl From<FuncLastInsertId> for Expr

Source§

fn from(value: FuncLastInsertId) -> Self

Converts to this type from the input type.
Source§

impl From<Insert> for Expr

Source§

fn from(value: Insert) -> Self

Converts to this type from the input type.
Source§

impl From<String> for Expr

Source§

fn from(value: String) -> Self

Converts to this type from the input type.
Source§

impl From<Value> for Expr

Source§

fn from(value: Value) -> Self

Converts to this type from the input type.
Source§

impl From<Vec<Expr>> for Expr

Source§

fn from(value: Vec<Self>) -> Self

Converts to this type from the input type.
Source§

impl From<bool> for Expr

Source§

fn from(value: bool) -> Self

Converts to this type from the input type.
Source§

impl From<i64> for Expr

Source§

fn from(value: i64) -> Self

Converts to this type from the input type.
Source§

impl Like<&[Value]> for Expr

Source§

fn like(&self, other: &&[Value]) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<&[u8]> for Expr

Source§

fn like(&self, pattern: &&[u8]) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl<const N: usize> Like<&[u8; N]> for Expr

Source§

fn like(&self, other: &&[u8; N]) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<&String> for Expr

Source§

fn like(&self, pattern: &&String) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<&str> for Expr

Source§

fn like(&self, pattern: &&str) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl<const N: usize> Like<[&str; N]> for Expr

Source§

fn like(&self, other: &[&str; N]) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl<const N: usize> Like<[Value; N]> for Expr

Like implementation for expressions against arrays of Values

Source§

fn like(&self, pattern: &[Value; N]) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl<T1> Like<(T1,)> for Expr
where Expr: Like<T1>,

Source§

fn like(&self, pattern: &(T1,)) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl<T1, T2> Like<(T1, T2)> for Expr
where Expr: Like<T1> + Like<T2>,

Source§

fn like(&self, pattern: &(T1, T2)) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl<T1, T2, T3> Like<(T1, T2, T3)> for Expr
where Expr: Like<T1> + Like<T2> + Like<T3>,

Source§

fn like(&self, pattern: &(T1, T2, T3)) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl<T1, T2, T3, T4> Like<(T1, T2, T3, T4)> for Expr
where Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4>,

Source§

fn like(&self, pattern: &(T1, T2, T3, T4)) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl<T1, T2, T3, T4, T5> Like<(T1, T2, T3, T4, T5)> for Expr
where Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5>,

Source§

fn like(&self, pattern: &(T1, T2, T3, T4, T5)) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl<T1, T2, T3, T4, T5, T6> Like<(T1, T2, T3, T4, T5, T6)> for Expr
where Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6>,

Source§

fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6)) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl<T1, T2, T3, T4, T5, T6, T7> Like<(T1, T2, T3, T4, T5, T6, T7)> for Expr
where Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7>,

Source§

fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7)) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl<T1, T2, T3, T4, T5, T6, T7, T8> Like<(T1, T2, T3, T4, T5, T6, T7, T8)> for Expr
where Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8>,

Source§

fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8)) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9> Like<(T1, T2, T3, T4, T5, T6, T7, T8, T9)> for Expr
where Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8> + Like<T9>,

Source§

fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8, T9)) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Like<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for Expr
where Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8> + Like<T9> + Like<T10>,

Source§

fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)) -> bool

Returns true if self matches the pattern other. Read more
Source§

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 Expr
where Expr: Like<T1> + Like<T2> + Like<T3> + Like<T4> + Like<T5> + Like<T6> + Like<T7> + Like<T8> + Like<T9> + Like<T10> + Like<T11>,

Source§

fn like(&self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)) -> bool

Returns true if self matches the pattern other. Read more
Source§

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 Expr
where 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>,

Source§

fn like( &self, pattern: &(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12), ) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<String> for Expr

Like implementation for Expr and String (delegates to PartialEq)

Source§

fn like(&self, pattern: &String) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<Uuid> for Expr

Source§

fn like(&self, other: &Uuid) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<Value> for Expr

Source§

fn like(&self, other: &Value) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<Vec<Value>> for Expr

Like implementation for expressions against Vec patterns

Source§

fn like(&self, pattern: &Vec<Value>) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<i16> for Expr

Available on crate feature assert-struct only.
Source§

fn like(&self, pattern: &i16) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<i32> for Expr

Available on crate feature assert-struct only.
Source§

fn like(&self, pattern: &i32) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<i64> for Expr

Available on crate feature assert-struct only.
Source§

fn like(&self, pattern: &i64) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<i8> for Expr

Available on crate feature assert-struct only.
Source§

fn like(&self, pattern: &i8) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<isize> for Expr

Available on crate feature assert-struct only.
Source§

fn like(&self, pattern: &isize) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<u16> for Expr

Available on crate feature assert-struct only.
Source§

fn like(&self, pattern: &u16) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<u32> for Expr

Available on crate feature assert-struct only.
Source§

fn like(&self, pattern: &u32) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<u64> for Expr

Available on crate feature assert-struct only.
Source§

fn like(&self, pattern: &u64) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<u8> for Expr

Available on crate feature assert-struct only.
Source§

fn like(&self, pattern: &u8) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Like<usize> for Expr

Available on crate feature assert-struct only.
Source§

fn like(&self, pattern: &usize) -> bool

Returns true if self matches the pattern other. Read more
Source§

impl Node for Expr

Source§

fn visit<V: Visit>(&self, visit: V)

Source§

fn visit_mut<V: VisitMut>(&mut self, visit: V)

Source§

impl PartialEq<&str> for Expr

PartialEq<&str> for Expr

Source§

fn eq(&self, other: &&str) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0> PartialEq<(T0,)> for Expr
where Expr: PartialEq<T0>, Value: PartialEq<T0>,

Source§

fn eq(&self, other: &(T0,)) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1> PartialEq<(T0, T1)> for Expr
where Expr: PartialEq<T0> + PartialEq<T1>, Value: PartialEq<T0> + PartialEq<T1>,

Source§

fn eq(&self, other: &(T0, T1)) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2> PartialEq<(T0, T1, T2)> for Expr
where Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2>, Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2>,

Source§

fn eq(&self, other: &(T0, T1, T2)) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3> PartialEq<(T0, T1, T2, T3)> for Expr
where Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3>, Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3>,

Source§

fn eq(&self, other: &(T0, T1, T2, T3)) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4> PartialEq<(T0, T1, T2, T3, T4)> for Expr
where Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4>, Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4>,

Source§

fn eq(&self, other: &(T0, T1, T2, T3, T4)) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4, T5> PartialEq<(T0, T1, T2, T3, T4, T5)> for Expr
where Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5>, Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5>,

Source§

fn eq(&self, other: &(T0, T1, T2, T3, T4, T5)) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4, T5, T6> PartialEq<(T0, T1, T2, T3, T4, T5, T6)> for Expr
where Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6>, Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6>,

Source§

fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6)) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> PartialEq<(T0, T1, T2, T3, T4, T5, T6, T7)> for Expr
where Expr: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7>, Value: PartialEq<T0> + PartialEq<T1> + PartialEq<T2> + PartialEq<T3> + PartialEq<T4> + PartialEq<T5> + PartialEq<T6> + PartialEq<T7>,

Source§

fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6, T7)) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> PartialEq<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> for Expr
where 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>,

Source§

fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6, T7, T8)) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> PartialEq<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for Expr
where 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>,

Source§

fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

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 Expr
where 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>,

Source§

fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

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 Expr
where 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>,

Source§

fn eq(&self, other: &(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0> PartialEq<Expr> for (T0,)

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1> PartialEq<Expr> for (T0, T1)

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2> PartialEq<Expr> for (T0, T1, T2)

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3> PartialEq<Expr> for (T0, T1, T2, T3)

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4> PartialEq<Expr> for (T0, T1, T2, T3, T4)

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4, T5> PartialEq<Expr> for (T0, T1, T2, T3, T4, T5)

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4, T5, T6> PartialEq<Expr> for (T0, T1, T2, T3, T4, T5, T6)

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> PartialEq<Expr> for (T0, T1, T2, T3, T4, T5, T6, T7)

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> PartialEq<Expr> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> PartialEq<Expr> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> PartialEq<Expr> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> PartialEq<Expr> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<Expr> for i16

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<Expr> for i32

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<Expr> for i64

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<Expr> for i8

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<Expr> for u16

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<Expr> for u32

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<Expr> for u64

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<Expr> for u8

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<String> for Expr

PartialEq for Expr

Source§

fn eq(&self, other: &String) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<bool> for Expr

PartialEq implementation for Expr and primitive type

Source§

fn eq(&self, other: &bool) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<i16> for Expr

Source§

fn eq(&self, other: &i16) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<i32> for Expr

Source§

fn eq(&self, other: &i32) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<i64> for Expr

Source§

fn eq(&self, other: &i64) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<i8> for Expr

Source§

fn eq(&self, other: &i8) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<str> for Expr

PartialEq for Expr

Source§

fn eq(&self, other: &str) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<u16> for Expr

Source§

fn eq(&self, other: &u16) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<u32> for Expr

Source§

fn eq(&self, other: &u32) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<u64> for Expr

Source§

fn eq(&self, other: &u64) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<u8> for Expr

Source§

fn eq(&self, other: &u8) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq for Expr

Source§

fn eq(&self, other: &Expr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Project for &Expr

Source§

fn project(self, projection: &Projection) -> Option<Expr>

Source§

impl Project for Expr

Source§

fn project(self, projection: &Projection) -> Option<Expr>

Source§

impl StructuralPartialEq for Expr

Auto Trait Implementations§

§

impl Freeze for Expr

§

impl RefUnwindSafe for Expr

§

impl Send for Expr

§

impl Sync for Expr

§

impl Unpin for Expr

§

impl UnwindSafe for Expr

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V