mod box_stateful_bi_transformer;
pub use box_stateful_bi_transformer::BoxStatefulBiTransformer;
#[cfg(feature = "rc")]
mod rc_stateful_bi_transformer;
#[cfg(feature = "rc")]
pub use rc_stateful_bi_transformer::RcStatefulBiTransformer;
mod arc_stateful_bi_transformer;
pub use arc_stateful_bi_transformer::ArcStatefulBiTransformer;
mod stateful_binary_operator;
pub use stateful_binary_operator::StatefulBinaryOperator;
mod box_stateful_binary_operator;
pub use box_stateful_binary_operator::BoxStatefulBinaryOperator;
mod arc_stateful_binary_operator;
pub use arc_stateful_binary_operator::ArcStatefulBinaryOperator;
#[cfg(feature = "rc")]
mod rc_stateful_binary_operator;
#[cfg(feature = "rc")]
pub use rc_stateful_binary_operator::RcStatefulBinaryOperator;
mod box_conditional_stateful_bi_transformer;
pub use box_conditional_stateful_bi_transformer::BoxConditionalStatefulBiTransformer;
#[cfg(feature = "rc")]
mod rc_conditional_stateful_bi_transformer;
#[cfg(feature = "rc")]
pub use rc_conditional_stateful_bi_transformer::RcConditionalStatefulBiTransformer;
mod arc_conditional_stateful_bi_transformer;
pub use arc_conditional_stateful_bi_transformer::ArcConditionalStatefulBiTransformer;
pub trait StatefulBiTransformer<T, U, R> {
#[must_use = "the computed callback result should be used"]
fn apply(&mut self, first: T, second: U) -> R;
}
crate::macros::impl_closure_trait!(
StatefulBiTransformer<T, U, R>,
apply,
FnMut(first: T, second: U) -> R
);