Skip to main content

qubit_function/functions/
mod.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2025 - 2026.
4 *    Haixing Hu, Qubit Co. Ltd.
5 *
6 *    All rights reserved.
7 *
8 ******************************************************************************/
9//! # Functions Module
10//!
11//! This module provides function-related functional programming abstractions
12//! for transforming values from one type to another with reference semantics.
13//!
14//! # Author
15//!
16//! Haixing Hu
17
18pub mod bi_function;
19pub mod bi_function_once;
20pub mod bi_mutating_function;
21pub mod bi_mutating_function_once;
22pub mod function;
23pub mod function_once;
24#[doc(hidden)]
25pub mod macros;
26pub mod mutating_function;
27pub mod mutating_function_once;
28pub mod stateful_function;
29pub mod stateful_mutating_function;
30
31pub use bi_function::{
32    ArcBiFunction,
33    ArcBinaryFunction,
34    ArcConditionalBiFunction,
35    BiFunction,
36    BoxBiFunction,
37    BoxBinaryFunction,
38    BoxConditionalBiFunction,
39    FnBiFunctionOps,
40    RcBiFunction,
41    RcBinaryFunction,
42    RcConditionalBiFunction,
43};
44pub use bi_function_once::{
45    BiFunctionOnce,
46    BoxBiFunctionOnce,
47    BoxConditionalBiFunctionOnce,
48    FnBiFunctionOnceOps,
49};
50pub use bi_mutating_function::{
51    ArcBiMutatingFunction,
52    ArcBinaryMutatingFunction,
53    ArcConditionalBiMutatingFunction,
54    BiMutatingFunction,
55    BoxBiMutatingFunction,
56    BoxBinaryMutatingFunction,
57    BoxConditionalBiMutatingFunction,
58    FnBiMutatingFunctionOps,
59    RcBiMutatingFunction,
60    RcBinaryMutatingFunction,
61    RcConditionalBiMutatingFunction,
62};
63pub use bi_mutating_function_once::{
64    BiMutatingFunctionOnce,
65    BoxBiMutatingFunctionOnce,
66    BoxConditionalBiMutatingFunctionOnce,
67    FnBiMutatingFunctionOnceOps,
68};
69pub use function::{
70    ArcConditionalFunction,
71    ArcFunction,
72    BoxConditionalFunction,
73    BoxFunction,
74    FnFunctionOps,
75    Function,
76    RcConditionalFunction,
77    RcFunction,
78};
79pub use function_once::{
80    BoxConditionalFunctionOnce,
81    BoxFunctionOnce,
82    FnFunctionOnceOps,
83    FunctionOnce,
84};
85pub use mutating_function::{
86    ArcConditionalMutatingFunction,
87    ArcMutatingFunction,
88    BoxConditionalMutatingFunction,
89    BoxMutatingFunction,
90    FnMutatingFunctionOps,
91    MutatingFunction,
92    RcConditionalMutatingFunction,
93    RcMutatingFunction,
94};
95pub use mutating_function_once::{
96    BoxConditionalMutatingFunctionOnce,
97    BoxMutatingFunctionOnce,
98    FnMutatingFunctionOnceOps,
99    MutatingFunctionOnce,
100};
101pub use stateful_function::{
102    ArcConditionalStatefulFunction,
103    ArcStatefulFunction,
104    BoxConditionalStatefulFunction,
105    BoxStatefulFunction,
106    FnStatefulFunctionOps,
107    RcConditionalStatefulFunction,
108    RcStatefulFunction,
109    StatefulFunction,
110};
111pub use stateful_mutating_function::{
112    ArcConditionalStatefulMutatingFunction,
113    ArcStatefulMutatingFunction,
114    BoxConditionalStatefulMutatingFunction,
115    BoxStatefulMutatingFunction,
116    FnStatefulMutatingFunctionOps,
117    RcConditionalStatefulMutatingFunction,
118    RcStatefulMutatingFunction,
119    StatefulMutatingFunction,
120};