Skip to main content

qubit_function/transformers/
mod.rs

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