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::FnConsumerOps;
use std::sync::atomic::{
    AtomicI32,
    Ordering,
};

#[test]
fn test_fn_consumer_ops_observable_behavior() {
    fn assert_ops<F: FnConsumerOps<i32>>(_: &F) {}

    let count = AtomicI32::new(0);
    let consumer = |value: &i32| count.store(*value, Ordering::SeqCst);
    assert_ops(&consumer);
    consumer(&42);
    assert_eq!(count.load(Ordering::SeqCst), 42);
}