qubit-function 0.12.0

Functional programming traits and Box/Rc/Arc adapters for Rust, inspired by Java functional interfaces
Documentation
/*******************************************************************************
 *
 *    Copyright (c) 2025 - 2026 Haixing Hu.
 *
 *    SPDX-License-Identifier: Apache-2.0
 *
 *    Licensed under the Apache License, Version 2.0.
 *
 ******************************************************************************/

use qubit_function::FnBiMutatingFunctionOnceOps;

#[test]
fn test_fn_bi_mutating_function_once_ops_observable_behavior() {
    fn assert_ops<F: FnBiMutatingFunctionOnceOps<i32, i32, i32>>(_: &F) {}

    let function = |left: &mut i32, right: &mut i32| {
        *left += 1;
        *right += 1;
        *left + *right
    };
    assert_ops(&function);
    let mut left = 20;
    let mut right = 20;
    assert_eq!(function(&mut left, &mut right), 42);
}