genz 0.2.0

Access guards based on invariant lifetime markers.
Documentation
genz-0.2.0 has been yanked.

genz

Markers for proving uniqueness of types using invariant lifetimes.

Provides a non-Copy zero-sized type-marker called UniqueType, which makes it impossible to call the following without resorting to unsafe code:

# use genz::*;
fn same_type<'c, T>(t1: UniqueType<'c, T>, t2: UniqueType<'c, T>)
{
  panic!("this is impossible!")
}