nearest 0.4.5

Self-relative pointer library for region-based allocation
Documentation
//! A `Ref` from one session must not work in another session.

use nearest::{Flat, NearList, Region, empty};

#[derive(Flat, Debug)]
struct Block {
  name: u32,
  items: NearList<u32>,
}

fn main() {
  let mut region: Region<Block> = Region::new(Block::make(42, empty()));
  let mut region2: Region<Block> = Region::new(Block::make(99, empty()));

  region.session(|s1| {
    let r = s1.root();
    region2.session(|s2| {
      // Use a Ref from s1 inside s2 — must not compile.
      let _ = s2.at(r);
    });
  });
}