ach-spsc 0.2.5

Atomic Channel
Documentation
use ach_spsc::heapless::Spsc;
use on_drop::OnDrop;

#[test]
fn test() {
    let spsc: Spsc<_, 3> = Spsc::new();
    let mut sender = spsc.take_sender().unwrap();
    let mut receiver = spsc.take_recver().unwrap();
    let (item, token) = OnDrop::token(1);
    assert!(sender.try_send(item).is_ok());
    drop(receiver.try_recv().unwrap());
    assert!(token.is_droped());

    let (item, token) = OnDrop::token(1);
    assert!(sender.try_send(item).is_ok());
    drop(sender);
    drop(receiver);
    drop(spsc);
    assert!(token.is_droped());
}