mod box_bi_mutating_function;
pub use box_bi_mutating_function::BoxBiMutatingFunction;
#[cfg(feature = "rc")]
mod rc_bi_mutating_function;
#[cfg(feature = "rc")]
pub use rc_bi_mutating_function::RcBiMutatingFunction;
mod arc_bi_mutating_function;
pub use arc_bi_mutating_function::ArcBiMutatingFunction;
mod box_binary_mutating_function;
pub use box_binary_mutating_function::BoxBinaryMutatingFunction;
mod arc_binary_mutating_function;
pub use arc_binary_mutating_function::ArcBinaryMutatingFunction;
#[cfg(feature = "rc")]
mod rc_binary_mutating_function;
#[cfg(feature = "rc")]
pub use rc_binary_mutating_function::RcBinaryMutatingFunction;
mod box_conditional_bi_mutating_function;
pub use box_conditional_bi_mutating_function::BoxConditionalBiMutatingFunction;
#[cfg(feature = "rc")]
mod rc_conditional_bi_mutating_function;
#[cfg(feature = "rc")]
pub use rc_conditional_bi_mutating_function::RcConditionalBiMutatingFunction;
mod arc_conditional_bi_mutating_function;
pub use arc_conditional_bi_mutating_function::ArcConditionalBiMutatingFunction;
pub trait BiMutatingFunction<T, U, R> {
#[must_use = "the computed callback result should be used"]
fn apply(&self, first: &mut T, second: &mut U) -> R;
}
crate::macros::impl_closure_trait!(
BiMutatingFunction<T, U, R>,
apply,
Fn(first: &mut T, second: &mut U) -> R
);