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