Skip to main content

qubit_function/transformers/
mod.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2025 - 2026.
4 *    Haixing Hu, Qubit Co. Ltd.
5 *
6 *    All rights reserved.
7 *
8 ******************************************************************************/
9//! # Transformers Module
10//!
11//! This module provides transformer-related functional programming
12//! abstractions for converting values from one type to another, including
13//! single-parameter transformers, bi-transformers, and their stateful
14//! variants.
15//!
16//! # Author
17//!
18//! Haixing Hu
19
20pub mod bi_transformer;
21pub mod bi_transformer_once;
22pub mod macros;
23pub mod stateful_bi_transformer;
24pub mod stateful_transformer;
25pub mod transformer;
26pub mod transformer_once;
27
28pub use bi_transformer::{
29    ArcBiTransformer,
30    ArcBinaryOperator,
31    BiTransformer,
32    BinaryOperator,
33    BoxBiTransformer,
34    BoxBinaryOperator,
35    FnBiTransformerOps,
36    RcBiTransformer,
37    RcBinaryOperator,
38};
39pub use bi_transformer_once::{
40    BiTransformerOnce,
41    BinaryOperatorOnce,
42    BoxBiTransformerOnce,
43    BoxBinaryOperatorOnce,
44    FnBiTransformerOnceOps,
45};
46pub use stateful_bi_transformer::{
47    ArcConditionalStatefulBiTransformer,
48    ArcStatefulBiTransformer,
49    BoxConditionalStatefulBiTransformer,
50    BoxStatefulBiTransformer,
51    FnStatefulBiTransformerOps,
52    RcConditionalStatefulBiTransformer,
53    RcStatefulBiTransformer,
54    StatefulBiTransformer,
55};
56pub use stateful_bi_transformer::{
57    ArcStatefulBinaryOperator,
58    BoxStatefulBinaryOperator,
59    RcStatefulBinaryOperator,
60    StatefulBinaryOperator,
61};
62pub use stateful_transformer::{
63    ArcConditionalStatefulTransformer,
64    ArcStatefulTransformer,
65    BoxConditionalStatefulTransformer,
66    BoxStatefulTransformer,
67    FnStatefulTransformerOps,
68    RcConditionalStatefulTransformer,
69    RcStatefulTransformer,
70    StatefulTransformer,
71};
72pub use transformer::{
73    ArcConditionalTransformer,
74    ArcTransformer,
75    ArcUnaryOperator,
76    BoxConditionalTransformer,
77    BoxTransformer,
78    BoxUnaryOperator,
79    FnTransformerOps,
80    RcConditionalTransformer,
81    RcTransformer,
82    RcUnaryOperator,
83    Transformer,
84    UnaryOperator,
85};
86pub use transformer_once::{
87    BoxConditionalTransformerOnce,
88    BoxTransformerOnce,
89    BoxUnaryOperatorOnce,
90    FnTransformerOnceOps,
91    TransformerOnce,
92    UnaryOperatorOnce,
93};