Skip to main content

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