Enum google_api_proto::google::api::expr::v1beta1::expr_value::Kind
source · pub enum Kind {
Value(Value),
Error(ErrorSet),
Unknown(UnknownSet),
}
Expand description
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§
source§impl Kind
impl Kind
sourcepub fn merge(
field: &mut Option<Kind>,
tag: u32,
wire_type: WireType,
buf: &mut impl Buf,
ctx: DecodeContext,
) -> Result<(), DecodeError>
pub fn merge( field: &mut Option<Kind>, tag: u32, wire_type: WireType, buf: &mut impl Buf, ctx: DecodeContext, ) -> Result<(), DecodeError>
Decodes an instance of the message from a buffer, and merges it into self.
sourcepub fn encoded_len(&self) -> usize
pub fn encoded_len(&self) -> usize
Returns the encoded length of the message without a length delimiter.
Trait Implementations§
source§impl PartialEq for Kind
impl PartialEq for Kind
impl StructuralPartialEq for Kind
Auto Trait Implementations§
impl !Freeze for Kind
impl RefUnwindSafe for Kind
impl Send for Kind
impl Sync for Kind
impl Unpin for Kind
impl UnwindSafe for Kind
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request