pub enum BoundScalarExpression {
BindingValue {
binding: BindingId,
nullability: ScalarNullability,
},
LiteralNull,
LiteralNonNull,
Parameter {
nullability: ScalarNullability,
},
StrictCall {
arguments: Vec<Self>,
result_nullability_when_arguments_non_null: ScalarNullability,
},
Coalesce(Vec<Self>),
Opaque {
referenced_bindings: BindingSet,
nullability: ScalarNullability,
},
}Expand description
Bound scalar nodes required by the null-rejection analysis.
Binders should use Self::Opaque for unsupported expressions. A strict
call promises only that a null argument produces a null result; callers
must describe the result’s nullability when every argument is non-null.
Variants§
BindingValue
LiteralNull
LiteralNonNull
Parameter
Fields
§
nullability: ScalarNullabilityStrictCall
Coalesce(Vec<Self>)
Opaque
Implementations§
Source§impl BoundScalarExpression
impl BoundScalarExpression
pub fn referenced_bindings(&self) -> BindingSet
Trait Implementations§
Source§impl Clone for BoundScalarExpression
impl Clone for BoundScalarExpression
Source§impl Debug for BoundScalarExpression
impl Debug for BoundScalarExpression
impl Eq for BoundScalarExpression
Source§impl PartialEq for BoundScalarExpression
impl PartialEq for BoundScalarExpression
impl StructuralPartialEq for BoundScalarExpression
Auto Trait Implementations§
impl Freeze for BoundScalarExpression
impl RefUnwindSafe for BoundScalarExpression
impl Send for BoundScalarExpression
impl Sync for BoundScalarExpression
impl Unpin for BoundScalarExpression
impl UnsafeUnpin for BoundScalarExpression
impl UnwindSafe for BoundScalarExpression
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