// Lists returns a cel.EnvOption to configure extended functions for list manipulation. // As a general note, all indices are zero-based. // # Slice // // Returns a new sub-list using the indexes provided. // // <list>.slice(<int>, <int>) -> <list> // // Examples: // // [1,2,3,4].slice(1, 3) // return [2, 3] // [1,2,3,4].slice(2, 4) // return [3 ,4] func Lists() cel.EnvOption { … } type listsLib … // LibraryName implements the SingletonLibrary interface method. func (listsLib) LibraryName() string { … } // CompileOptions implements the Library interface method. func (listsLib) CompileOptions() []cel.EnvOption { … } // ProgramOptions implements the Library interface method. func (listsLib) ProgramOptions() []cel.ProgramOption { … } func slice(list traits.Lister, start, end types.Int) (ref.Val, error) { … }