paft_utils/
lib.rs

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