apple-log 0.5.1

Safe Rust bindings for Apple's os / OSLog APIs on macOS
Documentation
use apple_log::prelude::*;

#[test]
fn os_atomic_smoke() {
    let atomic32 = OSAtomicI32::new(5);
    assert_eq!(atomic32.add(1), 6);
    assert!(atomic32.compare_and_swap(6, 10));
    assert_eq!(atomic32.or(0b0011), 0b1011);

    let atomic64 = OSAtomicI64::new(10);
    assert_eq!(atomic64.increment(), 11);
    assert!(atomic64.compare_and_swap(11, 20));

    let queue = OSAtomicQueue::new().expect("queue");
    queue.enqueue(7);
    assert_eq!(queue.dequeue(), Some(7));

    let fifo = OSAtomicFifoQueue::new().expect("fifo");
    fifo.enqueue(9);
    assert_eq!(fifo.dequeue(), Some(9));
}