# CEL v0.2.0 - Table of Contents Common Expression Language (CEL) for Elixir. ## Pages - [CEL](readme.md) - [Changelog](changelog.md) - Guides - [Evaluating CEL expressions](evaluating-expressions.md) - [Custom CEL functions](custom-functions.md) ## Modules - CEL - [CEL](CEL.md): The Common Expression Language (CEL): parse, type-check and evaluate CEL expressions against variables and messages. - [CEL.Checked](CEL.Checked.md): A type-checked CEL expression, from `CEL.check/2`. - [CEL.Env](CEL.Env.md): What a CEL expression may use: its variables and their types, custom functions, and the message and enum types of its `CEL.TypeProvider`. The standard CEL functions and macros, and CEL's own types, are always available. - [CEL.Expr](CEL.Expr.md): A read-only view of a checked CEL expression, in the spirit of cel-go's `common/ast`. Get one with `CEL.Checked.expr/1`. - [CEL.Field](CEL.Field.md): A field of a message type, as a `CEL.TypeProvider` describes it. - [CEL.Function](CEL.Function.md): A custom CEL function, registered with `CEL.Env.build/1`'s `:functions` option. See the "Custom CEL functions" guide. - [CEL.Function.Overload](CEL.Function.Overload.md): One signature of a `CEL.Function`, and the code that evaluates it. - [CEL.Program](CEL.Program.md): A checked CEL expression together with the `CEL.Env` it was checked against, ready to evaluate any number of times. - [CEL.Type](CEL.Type.md): CEL types, in the shorthand `CEL` uses wherever it takes or returns a type: variable declarations in `CEL.Env.build/1`, overload signatures in `CEL.Function.Overload`, and the types of `CEL.Expr` nodes and `CEL.Checked.type/2`. - [CEL.TypeProvider](CEL.TypeProvider.md): The message and enum types an environment knows, and how to read and build their values. - [CEL.Unknown](CEL.Unknown.md): The result of evaluating a CEL expression whose outcome depends on inputs that are not known, in the spirit of cel-go's `types.Unknown`. - [CEL.Value](CEL.Value.md): CEL values, as evaluation returns them and as variables can be bound. - CEL expression view - [CEL.Expr.Call](CEL.Expr.Call.md): A function call, `f(args)` or `target.f(args)`. - [CEL.Expr.Comprehension](CEL.Expr.Comprehension.md): CEL's loop, which comprehension macros expand to. It appears directly in the tree only for a parsed expression that has one without its macro, such as one from another CEL implementation. - [CEL.Expr.Const](CEL.Expr.Const.md): A literal: `1`, `2u`, `'a'`, `b'a'`, `true`, `null`, .... - [CEL.Expr.Ident](CEL.Expr.Ident.md): A name, resolved by the checker. - [CEL.Expr.ListLiteral](CEL.Expr.ListLiteral.md): A list literal, `[a, b, ?c]`. - [CEL.Expr.MacroCall](CEL.Expr.MacroCall.md): A macro, as written: `l.all(x, p)`, `l.exists(x, p)`, `l.exists_one(x, p)`, `l.map(x, f)`, `l.map(x, p, f)`, `l.filter(x, p)`, the two-variable forms such as `m.all(k, v, p)`, `cel.bind(v, init, body)`, `o.optMap(v, f)` and `o.optFlatMap(v, f)`. - [CEL.Expr.MapLiteral](CEL.Expr.MapLiteral.md): A map literal, `{k: v, ?k2: v2}`. - [CEL.Expr.MessageLiteral](CEL.Expr.MessageLiteral.md): A message literal, `pkg.Message{field: value, ?other: maybe}`. - [CEL.Expr.Select](CEL.Expr.Select.md): A field selection: `operand.field`, or a map lookup written the same way. - Errors - [CEL.Error](CEL.Error.md): Unified error raised by CEL evaluation, including protovalidate `cel` rules. - [CEL.OptionError](CEL.OptionError.md): Option failure in a `CEL` entry point: the caller passed options it does not accept, a known option carried an invalid value, or options were not a keyword list.