Skip to main content

cel_core/ext/
mod.rs

1//! CEL extension libraries.
2//!
3//! Extensions provide additional functions beyond the standard library.
4//! Each extension returns `Vec<FunctionDecl>` with type declarations.
5//!
6//! # Available Extensions
7//!
8//! - **string_ext**: String manipulation functions like `charAt`, `indexOf`, `substring`
9//! - **math_ext**: Math functions like `math.greatest`, `math.least`, `math.abs`
10//! - **encoders_ext**: Encoding functions like `base64.encode`, `base64.decode`
11//! - **optionals_ext**: Optional type functions like `optional.of`, `optional.none`
12//!
13//! # Example
14//!
15//! ```ignore
16//! use cel_core::Env;
17//! use cel_core_common::extensions::{string_extension, math_extension, encoders_extension, optionals_extension};
18//!
19//! let env = Env::with_standard_library()
20//!     .with_extension(string_extension())
21//!     .with_extension(math_extension())
22//!     .with_extension(encoders_extension())
23//!     .with_extension(optionals_extension());
24//! ```
25
26mod encoders_ext;
27mod math_ext;
28mod optionals_ext;
29mod string_ext;
30
31pub use encoders_ext::encoders_extension;
32pub use math_ext::math_extension;
33pub use optionals_ext::optionals_extension;
34pub use string_ext::string_extension;