// NewDynamicList returns a traits.Lister with heterogenous elements. // value should be an array of "native" types, i.e. any type that // NativeToValue() can convert to a ref.Val. func NewDynamicList(adapter Adapter, value any) traits.Lister { … } // NewStringList returns a traits.Lister containing only strings. func NewStringList(adapter Adapter, elems []string) traits.Lister { … } // NewRefValList returns a traits.Lister with ref.Val elements. // // This type specialization is used with list literals within CEL expressions. func NewRefValList(adapter Adapter, elems []ref.Val) traits.Lister { … } // NewProtoList returns a traits.Lister based on a pb.List instance. func NewProtoList(adapter Adapter, list protoreflect.List) traits.Lister { … } // NewJSONList returns a traits.Lister based on structpb.ListValue instance. func NewJSONList(adapter Adapter, l *structpb.ListValue) traits.Lister { … } // NewMutableList creates a new mutable list whose internal state can be modified. func NewMutableList(adapter Adapter) traits.MutableLister { … } type baseList … // Add implements the traits.Adder interface method. func (l *baseList) Add(other ref.Val) ref.Val { … } // Contains implements the traits.Container interface method. func (l *baseList) Contains(elem ref.Val) ref.Val { … } // ConvertToNative implements the ref.Val interface method. func (l *baseList) ConvertToNative(typeDesc reflect.Type) (any, error) { … } // ConvertToType implements the ref.Val interface method. func (l *baseList) ConvertToType(typeVal ref.Type) ref.Val { … } // Equal implements the ref.Val interface method. func (l *baseList) Equal(other ref.Val) ref.Val { … } // Get implements the traits.Indexer interface method. func (l *baseList) Get(index ref.Val) ref.Val { … } // IsZeroValue returns true if the list is empty. func (l *baseList) IsZeroValue() bool { … } // Iterator implements the traits.Iterable interface method. func (l *baseList) Iterator() traits.Iterator { … } // Size implements the traits.Sizer interface method. func (l *baseList) Size() ref.Val { … } // Type implements the ref.Val interface method. func (l *baseList) Type() ref.Type { … } // Value implements the ref.Val interface method. func (l *baseList) Value() any { … } // String converts the list to a human readable string form. func (l *baseList) String() string { … } type mutableList … // Add copies elements from the other list into the internal storage of the mutable list. // The ref.Val returned by Add is the receiver. func (l *mutableList) Add(other ref.Val) ref.Val { … } // ToImmutableList returns an immutable list based on the internal storage of the mutable list. func (l *mutableList) ToImmutableList() traits.Lister { … } type concatList … // Add implements the traits.Adder interface method. func (l *concatList) Add(other ref.Val) ref.Val { … } // Contains implements the traits.Container interface method. func (l *concatList) Contains(elem ref.Val) ref.Val { … } // ConvertToNative implements the ref.Val interface method. func (l *concatList) ConvertToNative(typeDesc reflect.Type) (any, error) { … } // ConvertToType implements the ref.Val interface method. func (l *concatList) ConvertToType(typeVal ref.Type) ref.Val { … } // Equal implements the ref.Val interface method. func (l *concatList) Equal(other ref.Val) ref.Val { … } // Get implements the traits.Indexer interface method. func (l *concatList) Get(index ref.Val) ref.Val { … } // IsZeroValue returns true if the list is empty. func (l *concatList) IsZeroValue() bool { … } // Iterator implements the traits.Iterable interface method. func (l *concatList) Iterator() traits.Iterator { … } // Size implements the traits.Sizer interface method. func (l *concatList) Size() ref.Val { … } // String converts the concatenated list to a human-readable string. func (l *concatList) String() string { … } // Type implements the ref.Val interface method. func (l *concatList) Type() ref.Type { … } // Value implements the ref.Val interface method. func (l *concatList) Value() any { … } func newListIterator(listValue traits.Lister) traits.Iterator { … } type listIterator … // HasNext implements the traits.Iterator interface method. func (it *listIterator) HasNext() ref.Val { … } // Next implements the traits.Iterator interface method. func (it *listIterator) Next() ref.Val { … } // IndexOrError converts an input index value into either a lossless integer index or an error. func IndexOrError(index ref.Val) (int, error) { … }