prism3_function/functions/
mod.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2025.
4 *    3-Prism 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;
24pub mod macros;
25pub mod mutating_function;
26pub mod mutating_function_once;
27pub mod stateful_function;
28pub mod stateful_mutating_function;
29
30pub use bi_function::{
31    ArcBiFunction,
32    ArcBinaryFunction,
33    ArcConditionalBiFunction,
34    BiFunction,
35    BoxBiFunction,
36    BoxBinaryFunction,
37    BoxConditionalBiFunction,
38    FnBiFunctionOps,
39    RcBiFunction,
40    RcBinaryFunction,
41    RcConditionalBiFunction,
42};
43pub use bi_function_once::{
44    BiFunctionOnce,
45    BoxBiFunctionOnce,
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    BoxFunctionOnce,
79    FnFunctionOnceOps,
80    FunctionOnce,
81};
82pub use mutating_function::{
83    ArcMutatingFunction,
84    BoxMutatingFunction,
85    FnMutatingFunctionOps,
86    MutatingFunction,
87    RcMutatingFunction,
88};
89pub use mutating_function_once::{
90    BoxMutatingFunctionOnce,
91    FnMutatingFunctionOnceOps,
92    MutatingFunctionOnce,
93};
94pub use stateful_function::{
95    ArcConditionalStatefulFunction,
96    ArcStatefulFunction,
97    BoxConditionalStatefulFunction,
98    BoxStatefulFunction,
99    FnStatefulFunctionOps,
100    RcConditionalStatefulFunction,
101    RcStatefulFunction,
102    StatefulFunction,
103};
104pub use stateful_mutating_function::{
105    ArcStatefulMutatingFunction,
106    BoxStatefulMutatingFunction,
107    FnStatefulMutatingFunctionOps,
108    RcStatefulMutatingFunction,
109    StatefulMutatingFunction,
110};