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 x is defined on m`.

Generated from protobuf message google.api.expr.v1alpha1.Expr.Comprehension

CloneableInstantiable
ExtendsGoogle\Protobuf\Internal\Message
Methods
public __construct( $data = NULL)
 

Constructor.

    public Google\Protobuf\Internal\Message::byteSize()
     
    • ignore
    public Google\Protobuf\Internal\Message::clear()
     

    Clear all containing fields.

    • return
    public Google\Protobuf\Internal\Message::discardUnknownFields()
     

    Clear all unknown fields previously parsed.

    • return
    public getAccuInit()
     

    The initial value of the accumulator.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr accu_init = 4;

    public getAccuVar()
     

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

    Generated from protobuf field string accu_var = 3;

    • return string
    public getIterRange()
     

    The range over which var iterates.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr iter_range = 2;

    public getIterVar()
     

    The name of the iteration variable.

    Generated from protobuf field string iter_var = 1;

    • return string
    public getLoopCondition()
     

    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.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr loop_condition = 5;

    public getLoopStep()
     

    An expression which can contain iter_var and accu_var.

    Computes the next value of accu_var.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr loop_step = 6;

    public getResult()
     

    An expression which can contain accu_var.

    Computes the result.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr result = 7;

    public Google\Protobuf\Internal\Message::jsonByteSize()
     
    • ignore
    public Google\Protobuf\Internal\Message::mergeFrom( $msg)
     

    Merges the contents of the specified message into current message.

    This method merges the contents of the specified message into the
    current message. Singular fields that are set in the specified message
    overwrite the corresponding fields in the current message. Repeated
    fields are appended. Map fields key-value pairs are overwritten.
    Singular/Oneof sub-messages are recursively merged. All overwritten
    sub-messages are deep-copied.

    • return
    public Google\Protobuf\Internal\Message::mergeFromJsonString( $data, $ignore_unknown = false)
     

    Parses a json string to protobuf message.

    This function takes a string in the json wire format, matching the
    encoding output by serializeToJsonString().
    See mergeFrom() for merging behavior, if the field is already set in the
    specified message.

    • return
    • throws Exception Invalid data.
    public Google\Protobuf\Internal\Message::mergeFromString( $data)
     

    Parses a protocol buffer contained in a string.

    This function takes a string in the (non-human-readable) binary wire
    format, matching the encoding output by serializeToString().
    See mergeFrom() for merging behavior, if the field is already set in the
    specified message.

    • return
    • throws Exception Invalid data.
    public Google\Protobuf\Internal\Message::parseFromJsonStream( $input, $ignore_unknown)
     
    • ignore
    public Google\Protobuf\Internal\Message::parseFromStream( $input)
     
    • ignore
    public Google\Protobuf\Internal\Message::serializeToJsonStream( $output)
     
    • ignore
    public Google\Protobuf\Internal\Message::serializeToJsonString()
     

    Serialize the message to json string.

    • return string Serialized json protobuf data.
    public Google\Protobuf\Internal\Message::serializeToStream( $output)
     
    • ignore
    public Google\Protobuf\Internal\Message::serializeToString()
     

    Serialize the message to string.

    • return string Serialized binary protobuf data.
    public setAccuInit( $var)
     

    The initial value of the accumulator.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr accu_init = 4;

    • return $this
    public setAccuVar( $var)
     

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

    Generated from protobuf field string accu_var = 3;

    • return $this
    public setIterRange( $var)
     

    The range over which var iterates.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr iter_range = 2;

    • return $this
    public setIterVar( $var)
     

    The name of the iteration variable.

    Generated from protobuf field string iter_var = 1;

    • return $this
    public setLoopCondition( $var)
     

    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.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr loop_condition = 5;

    • return $this
    public setLoopStep( $var)
     

    An expression which can contain iter_var and accu_var.

    Computes the next value of accu_var.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr loop_step = 6;

    • return $this
    public setResult( $var)
     

    An expression which can contain accu_var.

    Computes the result.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr result = 7;

    • return $this
    Methods
    protected Google\Protobuf\Internal\Message::mergeFromArray(array $array)
     

    Populates the message from a user-supplied PHP array. Array keys
    correspond to Message properties and nested message properties.

    Example:

    $message->mergeFromArray([
        'name' => 'This is a message name',
        'interval' => [
             'startTime' => time() - 60,
             'endTime' => time(),
        ]
    ]);
    

    This method will trigger an error if it is passed data that cannot
    be converted to the correct type. For example, a StringValue field
    must receive data that is either a string or a StringValue object.

    • return
    protected Google\Protobuf\Internal\Message::mergeFromJsonArray( $array, $ignore_unknown)
    protected Google\Protobuf\Internal\Message::readOneof( $number)
    protected Google\Protobuf\Internal\Message::readWrapperValue( $member)
    protected Google\Protobuf\Internal\Message::whichOneof( $oneof_name)
    protected Google\Protobuf\Internal\Message::writeOneof( $number, $value)
    protected Google\Protobuf\Internal\Message::writeWrapperValue( $member, $value)
    Properties
    private $accu_init
     

    The initial value of the accumulator.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr accu_init = 4;

    private $accu_var
     

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

    Generated from protobuf field string accu_var = 3;

    private $iter_range
     

    The range over which var iterates.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr iter_range = 2;

    private $iter_var
     

    The name of the iteration variable.

    Generated from protobuf field string iter_var = 1;

    private $loop_condition
     

    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.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr loop_condition = 5;

    private $loop_step
     

    An expression which can contain iter_var and accu_var.

    Computes the next value of accu_var.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr loop_step = 6;

    private $result
     

    An expression which can contain accu_var.

    Computes the result.

    Generated from protobuf field .google.api.expr.v1alpha1.Expr result = 7;

    Methods
    private Google\Protobuf\Internal\Message::appendHelper( $field, $append_value)
    private Google\Protobuf\Internal\Message::convertJsonValueToProtoValue( $value, $field, $ignore_unknown, $is_map_key = false)
    private Google\Protobuf\Internal\Message::defaultValue( $field)
     
    • ignore
    private Google\Protobuf\Internal\Message::existField( $field)
     
    • ignore
    private Google\Protobuf\Internal\Message::fieldByteSize( $field)
     
    • ignore
    private Google\Protobuf\Internal\Message::fieldDataOnlyByteSize( $field, $value)
     
    • ignore
    private Google\Protobuf\Internal\Message::fieldDataOnlyJsonByteSize( $field, $value)
     
    • ignore
    private Google\Protobuf\Internal\Message::fieldJsonByteSize( $field)
     
    • ignore
    private Google\Protobuf\Internal\Message::initWithDescriptor(Google\Protobuf\Internal\Descriptor $desc)
     
    • ignore
    private Google\Protobuf\Internal\Message::initWithGeneratedPool()
     
    • ignore
    private Google\Protobuf\Internal\Message::kvUpdateHelper( $field, $update_key, $update_value)
    private Google\Protobuf\Internal\Message::mergeFromArrayJsonImpl( $array, $ignore_unknown)
    private static Google\Protobuf\Internal\Message::normalizeArrayElementsToMessageType( $value, $class)
     

    Tries to normalize the elements in $value into a provided protobuf
    wrapper type $class. If $value is any type other than array, we do
    not do any conversion, and instead rely on the existing protobuf
    type checking. If $value is an array, we process each element and
    try to convert it to an instance of $class.

      private static Google\Protobuf\Internal\Message::normalizeToMessageType( $value, $class)
       

      Tries to normalize $value into a provided protobuf wrapper type $class.

      If $value is any type other than an object, we attempt to construct an
      instance of $class and assign $value to it using the setValue method
      shared by all wrapper types.

      This method will raise an error if it receives a type that cannot be
      assigned to the wrapper type via setValue.

        private Google\Protobuf\Internal\Message::parseFieldFromStream( $tag, $input, $field)
         
        • ignore
        private static Google\Protobuf\Internal\Message::parseFieldFromStreamNoTag( $input, $field, $value)
         
        • ignore
        private Google\Protobuf\Internal\Message::repeatedFieldDataOnlyByteSize( $field)
         
        • ignore
        private Google\Protobuf\Internal\Message::serializeFieldToJsonStream( $output, $field)
         
        • ignore
        private Google\Protobuf\Internal\Message::serializeFieldToStream( $output, $field)
         
        • ignore
        private Google\Protobuf\Internal\Message::serializeMapFieldToStream( $field, $output)
         
        • ignore
        private Google\Protobuf\Internal\Message::serializeRepeatedFieldToStream( $field, $output)
         
        • ignore
        private Google\Protobuf\Internal\Message::serializeSingularFieldToStream( $field, $output)
         
        • ignore
        private Google\Protobuf\Internal\Message::skipField( $input, $tag)
         
        • ignore
        Methods
        private static Google\Protobuf\Internal\Message::normalizeArrayElementsToMessageType( $value, $class)
         

        Tries to normalize the elements in $value into a provided protobuf
        wrapper type $class. If $value is any type other than array, we do
        not do any conversion, and instead rely on the existing protobuf
        type checking. If $value is an array, we process each element and
        try to convert it to an instance of $class.

          private static Google\Protobuf\Internal\Message::normalizeToMessageType( $value, $class)
           

          Tries to normalize $value into a provided protobuf wrapper type $class.

          If $value is any type other than an object, we attempt to construct an
          instance of $class and assign $value to it using the setValue method
          shared by all wrapper types.

          This method will raise an error if it receives a type that cannot be
          assigned to the wrapper type via setValue.

            private static Google\Protobuf\Internal\Message::parseFieldFromStreamNoTag( $input, $field, $value)
             
            • ignore
            © 2020 Bruce Wells
            Search Namespaces \ Classes
            ConfigurationNumbers (0-9.) only