o3 0.22.0

shared-nothing primitives
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use std::mem::MaybeUninit;

use o3::alloc::{self, array::Block};

fn main() -> Result<(), alloc::Error> {
    let outer = Block::<MaybeUninit<u8>, _>::try_new(1usize, ())?;
    let _ = outer.try_fill(|slot| {
        let mut done = Some(slot.insert(1));
        let inner = Block::<MaybeUninit<u8>, _>::try_new(1usize, ()).map_err(|_| ())?;
        let _ = inner.try_fill(|_| done.take().ok_or(()));
        Err::<_, ()>(())
    });
    Ok(())
}