Skip to main content

fraiseql_core/utils/
mod.rs

1//! Utility modules for FraiseQL.
2//!
3//! # Modules
4//!
5//! - `casing`: String case conversion (`snake_case`, camelCase, `PascalCase`)
6//! - `clock`: Clock abstraction for deterministic time-based testing
7//! - `operators`: GraphQL operator registry and validation
8//! - `vector`: pgvector support for similarity search
9//! - `opaque_id`: ID encoding to prevent enumeration attacks
10//! - `text`: UTF-8-safe string truncation for error/log/audit display
11
12pub mod casing;
13pub mod clock;
14pub mod opaque_id;
15pub mod operators;
16pub mod text;
17pub mod vector;
18
19// Re-export commonly used items
20pub use casing::{normalize_field_path, to_camel_case, to_snake_case};
21pub use clock::{Clock, SystemClock};
22pub use opaque_id::OpaqueId;
23pub use operators::{OperatorCategory, OperatorInfo, get_operator_info, is_operator};
24pub use text::{truncate_at_char_boundary, truncate_for_display};
25pub use vector::{PlaceholderStyle, VectorParam, VectorQueryBuilder, VectorSearchQuery};
26
27#[cfg(test)]
28mod tests;