Celixir.Ext.Sets (Celixir v0.2.0)

Copy Markdown View Source

Sets extension for CEL — mirrors ext.Sets() from cel-go.

Provides set-relationship tests on lists. Functions are available as built-ins and also via explicit registration.

Usage

env = Celixir.Environment.new() |> Celixir.Ext.Sets.register()
Celixir.eval!("sets.contains([1, 2, 3], [2, 3])", env)     # => true
Celixir.eval!("sets.equivalent([1, 2], [2, 1])", env)      # => true
Celixir.eval!("sets.intersects([1, 2], [2, 3])", env)      # => true

Functions

  • sets.contains(list, list) — true if first contains all elements of second
  • sets.equivalent(list, list) — true if sets are equal (order-independent)
  • sets.intersects(list, list) — true if any element appears in both lists

Summary

Functions

contains(list, sublist)

equivalent(list1, list2)

intersects(list1, list2)

register(env \\ Environment.new())

Registers sets extension functions into the given environment.