Enum tidb_query_expr::types::expr_eval::RpnStackNode[][src]

pub enum RpnStackNode<'a> {
    Scalar {
        value: &'a ScalarValue,
        field_type: &'a FieldType,
    },
    Vector {
        value: RpnStackNodeVectorValue<'a>,
        field_type: &'a FieldType,
    },
}

A type for each node in the RPN evaluation stack. It can be one of a scalar value node or a vector value node. The vector value node can be either an owned vector value or a reference.

Variants

Scalar

Represents a scalar value. Comes from a constant node in expression list.

Fields of Scalar

value: &'a ScalarValuefield_type: &'a FieldType
Vector

Represents a vector value. Comes from a column reference or evaluated result.

Fields of Vector

value: RpnStackNodeVectorValue<'a>field_type: &'a FieldType

Implementations

impl<'a> RpnStackNode<'a>[src]

pub fn field_type(&self) -> &FieldType[src]

Gets the field type.

pub fn scalar_value(&self) -> Option<&ScalarValue>[src]

Borrows the inner scalar value for Scalar variant.

pub fn vector_value(&self) -> Option<&RpnStackNodeVectorValue<'_>>[src]

Borrows the inner vector value for Vector variant.

pub fn is_scalar(&self) -> bool[src]

Whether this is a Scalar variant.

pub fn is_vector(&self) -> bool[src]

Whether this is a Vector variant.

pub fn get_logical_scalar_ref(&self, logical_index: usize) -> ScalarValueRef<'_>[src]

Gets a reference of the element by logical index.

If this is a Scalar variant, the returned reference will be the same for any index.

Panics

Panics if index is out of range and this is a Vector variant.

Trait Implementations

impl<'a> Debug for RpnStackNode<'a>[src]

Auto Trait Implementations

impl<'a> RefUnwindSafe for RpnStackNode<'a>

impl<'a> Send for RpnStackNode<'a>

impl<'a> Sync for RpnStackNode<'a>

impl<'a> Unpin for RpnStackNode<'a>

impl<'a> UnwindSafe for RpnStackNode<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<V, W> ConvertFrom<W> for V where
    W: ConvertTo<V>, 
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> Sealed<T> for T where
    T: ?Sized
[src]

impl<T> SendSyncUnwindSafe for T where
    T: Send + Sync + UnwindSafe + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]