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;
22#[doc(hidden)]
23pub mod macros;
24pub mod stateful_bi_transformer;
25pub mod stateful_transformer;
26pub mod transformer;
27pub mod transformer_once;
28
29pub use bi_transformer::{
30    ArcBiTransformer,
31    ArcBinaryOperator,
32    ArcConditionalBiTransformer,
33    BiTransformer,
34    BinaryOperator,
35    BoxBiTransformer,
36    BoxBinaryOperator,
37    BoxConditionalBiTransformer,
38    FnBiTransformerOps,
39    RcBiTransformer,
40    RcBinaryOperator,
41    RcConditionalBiTransformer,
42};
43pub use bi_transformer_once::{
44    BiTransformerOnce,
45    BinaryOperatorOnce,
46    BoxBiTransformerOnce,
47    BoxBinaryOperatorOnce,
48    BoxConditionalBiTransformerOnce,
49    FnBiTransformerOnceOps,
50};
51pub use stateful_bi_transformer::{
52    ArcConditionalStatefulBiTransformer,
53    ArcStatefulBiTransformer,
54    BoxConditionalStatefulBiTransformer,
55    BoxStatefulBiTransformer,
56    FnStatefulBiTransformerOps,
57    RcConditionalStatefulBiTransformer,
58    RcStatefulBiTransformer,
59    StatefulBiTransformer,
60};
61pub use stateful_bi_transformer::{
62    ArcStatefulBinaryOperator,
63    BoxStatefulBinaryOperator,
64    RcStatefulBinaryOperator,
65    StatefulBinaryOperator,
66};
67pub use stateful_transformer::{
68    ArcConditionalStatefulTransformer,
69    ArcStatefulTransformer,
70    BoxConditionalStatefulTransformer,
71    BoxStatefulTransformer,
72    FnStatefulTransformerOps,
73    RcConditionalStatefulTransformer,
74    RcStatefulTransformer,
75    StatefulTransformer,
76};
77pub use transformer::{
78    ArcConditionalTransformer,
79    ArcTransformer,
80    ArcUnaryOperator,
81    BoxConditionalTransformer,
82    BoxTransformer,
83    BoxUnaryOperator,
84    FnTransformerOps,
85    RcConditionalTransformer,
86    RcTransformer,
87    RcUnaryOperator,
88    Transformer,
89    UnaryOperator,
90};
91pub use transformer_once::{
92    BoxConditionalTransformerOnce,
93    BoxTransformerOnce,
94    BoxUnaryOperatorOnce,
95    FnTransformerOnceOps,
96    TransformerOnce,
97    UnaryOperatorOnce,
98};