paft_utils/lib.rs
1#![forbid(unsafe_code)]
2#![warn(missing_docs)]
3
4//! Shared utility helpers used across the paft workspace.
5//!
6//! This crate provides:
7//! - Canonical string utilities (`Canonical`, `canonicalize`) for enum `Other` variants
8//! - Optional dataframe helpers for converting domain structs to `polars` frames
9//!
10//! # Quickstart
11//! ```rust
12//! use paft_utils::{canonicalize, Canonical};
13//!
14//! // Normalize provider strings into canonical tokens
15//! assert_eq!(canonicalize("Euronext Paris"), "EURONEXT_PARIS");
16//!
17//! // Validate non-empty canonical tokens via the `Canonical` wrapper
18//! let c = Canonical::try_new("nasdaq").unwrap();
19//! assert_eq!(c.as_str(), "NASDAQ");
20//! ```
21//!
22//! # Feature flags
23//! - `dataframe`: enable lightweight dataframe traits for `polars`
24
25#[cfg(feature = "dataframe")]
26pub mod dataframe;
27pub mod string_canonical;
28
29#[cfg(feature = "dataframe")]
30pub use dataframe::{Columnar, ToDataFrame, ToDataFrameVec};
31pub use string_canonical::{Canonical, CanonicalError, StringCode, canonicalize};