Enum gapi_grpc::google::api::expr::v1alpha1::expr_value::Kind[][src]

pub enum Kind {
    Value(Value),
    Error(ErrorSet),
    Unknown(UnknownSet),
}

An expression can resolve to a value, error or unknown.

Variants

Value(Value)

A concrete value.

Error(ErrorSet)

The set of errors in the critical path of evalution.

Only errors in the critical path are included. For example, (<error1> || true) && <error2> will only result in <error2>, while <error1> || <error2> will result in both <error1> and <error2>.

Errors cause by the presence of other errors are not included in the set. For example <error1>.foo, foo(<error1>), and <error1> + 1 will only result in <error1>.

Multiple errors might be included when evaluation could result in different errors. For example <error1> + <error2> and foo(<error1>, <error2>) may result in <error1>, <error2> or both. The exact subset of errors included for this case is unspecified and depends on the implementation details of the evaluator.

Unknown(UnknownSet)

The set of unknowns in the critical path of evaluation.

Unknown behaves identically to Error with regards to propagation. Specifically, only unknowns in the critical path are included, unknowns caused by the presence of other unknowns are not included, and multiple unknowns might be included included when evaluation could result in different unknowns. For example:

(<unknown[1]> || true) && <unknown[2]> -> <unknown[2]>
<unknown[1]> || <unknown[2]> -> <unknown[1,2]>
<unknown[1]>.foo -> <unknown[1]>
foo(<unknown[1]>) -> <unknown[1]>
<unknown[1]> + <unknown[2]> -> <unknown[1]> or <unknown[2[>

Unknown takes precidence over Error in cases where a Value can short circuit the result:

<error> || <unknown> -> <unknown>
<error> && <unknown> -> <unknown>

Errors take precidence in all other cases:

<unknown> + <error> -> <error>
foo(<unknown>, <error>) -> <error>

Implementations

impl Kind[src]

pub fn encode<B>(&self, buf: &mut B) where
    B: BufMut
[src]

pub fn merge<B>(
    field: &mut Option<Kind>,
    tag: u32,
    wire_type: WireType,
    buf: &mut B,
    ctx: DecodeContext
) -> Result<(), DecodeError> where
    B: Buf
[src]

pub fn encoded_len(&self) -> usize[src]

Trait Implementations

impl Clone for Kind[src]

impl Debug for Kind[src]

impl PartialEq<Kind> for Kind[src]

impl StructuralPartialEq for Kind[src]

Auto Trait Implementations

impl RefUnwindSafe for Kind

impl Send for Kind

impl Sync for Kind

impl Unpin for Kind

impl UnwindSafe for Kind

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<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

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

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

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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]

impl<T> WithSubscriber for T[src]