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.v1beta1.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()
    public Google\Protobuf\Internal\Message::discardUnknownFields()
    public getAccuInit()
     
    The initial value of the accumulator.

    Generated from protobuf field .google.api.expr.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.Expr loop_step = 6;

    public getResult()
     
    An expression which can contain accu_var.

    Computes the result.

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

    public Google\Protobuf\Internal\Message::jsonByteSize()
     


    • ignore
    public Google\Protobuf\Internal\Message::mergeFrom( $msg)
    public Google\Protobuf\Internal\Message::mergeFromJsonString( $data)
    public Google\Protobuf\Internal\Message::mergeFromString( $data)
    public Google\Protobuf\Internal\Message::parseFromJsonStream( $input)
     


    • 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.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.Expr result = 7;

    • return $this
    Methods
    protected Google\Protobuf\Internal\Message::mergeFromArray(array $array)
    protected Google\Protobuf\Internal\Message::mergeFromJsonArray( $array)
    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.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.Expr loop_step = 6;

    private $result
     
    An expression which can contain accu_var.

    Computes the result.

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

    Methods
    private Google\Protobuf\Internal\Message::appendHelper( $field, $append_value)
    private Google\Protobuf\Internal\Message::convertJsonValueToProtoValue( $value, $field, $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)
    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