Struct googapis::google::api::expr::v1alpha1::expr::Comprehension[][src]

pub struct Comprehension {
    pub iter_var: String,
    pub iter_range: Option<Box<Expr>>,
    pub accu_var: String,
    pub accu_init: Option<Box<Expr>>,
    pub loop_condition: Option<Box<Expr>>,
    pub loop_step: Option<Box<Expr>>,
    pub result: Option<Box<Expr>>,
}
Expand description

A comprehension expression applied to a list or map.

Comprehensions are not part of the core syntax, but enabled with macros. A macro matches a specific call signature within a parsed AST and replaces the call with an alternate AST block. Macro expansion happens at parse time.

The following macros are supported within CEL:

Aggregate type macros may be applied to all elements in a list or all keys in a map:

  • all, exists, exists_one - test a predicate expression against the inputs and return true if the predicate is satisfied for all, any, or only one value list.all(x, x < 10).
  • filter - test a predicate expression against the inputs and return the subset of elements which satisfy the predicate: payments.filter(p, p > 1000).
  • map - apply an expression to all elements in the input and return the output aggregate type: [1, 2, 3].map(i, i * i).

The has(m.x) macro tests whether the property x is present in struct m. The semantics of this macro depend on the type of m. For proto2 messages has(m.x) is defined as ’defined, but not set. For proto3, the macro tests whether the property is set to its default. For map and struct types, the macro tests whether the property xis defined onm`.

Fields

iter_var: String

The name of the iteration variable.

iter_range: Option<Box<Expr>>

The range over which var iterates.

accu_var: String

The name of the variable used for accumulation of the result.

accu_init: Option<Box<Expr>>

The initial value of the accumulator.

loop_condition: Option<Box<Expr>>

An expression which can contain iter_var and accu_var.

Returns false when the result has been computed and may be used as a hint to short-circuit the remainder of the comprehension.

loop_step: Option<Box<Expr>>

An expression which can contain iter_var and accu_var.

Computes the next value of accu_var.

result: Option<Box<Expr>>

An expression which can contain accu_var.

Computes the result.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Returns the encoded length of the message without a length delimiter.

Clears the message, resetting all fields to their default.

Encodes the message to a buffer. Read more

Encodes the message to a newly allocated buffer.

Encodes the message with a length-delimiter to a buffer. Read more

Encodes the message with a length-delimiter to a newly allocated buffer.

Decodes an instance of the message from a buffer. Read more

Decodes a length-delimited instance of the message from the buffer.

Decodes an instance of the message from a buffer, and merges it into self. Read more

Decodes a length-delimited instance of the message from buffer, and merges it into self. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

Wrap the input message T in a tonic::Request

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more