pinned-init 0.0.10

Library to facilitate safe pinned initialization
Documentation
use pinned_init::*;
struct Foo {
    a: usize,
    pub(crate) b: usize,
}
#[automatically_derived]
unsafe impl ::pinned_init::Zeroable for Foo {}
const _: () = {
    fn assert_zeroable<T: ?::core::marker::Sized + ::pinned_init::Zeroable>() {}
    fn ensure_zeroable() {
        assert_zeroable::<usize>();
        assert_zeroable::<usize>();
    }
};
struct Bar {
    a: usize,
    b: &'static usize,
}
#[automatically_derived]
unsafe impl ::pinned_init::Zeroable for Bar
where
    usize: for<'__dummy> ::pinned_init::Zeroable,
    &'static usize: for<'__dummy> ::pinned_init::Zeroable,
{}
trait Trait {}
struct WithGenerics<'a, T, U: Trait> {
    a: T,
    u: &'a U,
}
#[automatically_derived]
unsafe impl<
    'a,
    T: ::pinned_init::Zeroable,
    U: ::pinned_init::Zeroable + Trait,
> ::pinned_init::Zeroable for WithGenerics<'a, T, U> {}
const _: () = {
    fn assert_zeroable<T: ?::core::marker::Sized + ::pinned_init::Zeroable>() {}
    fn ensure_zeroable<
        'a,
        T: ::pinned_init::Zeroable,
        U: ::pinned_init::Zeroable + Trait,
    >() {
        assert_zeroable::<T>();
        assert_zeroable::<&'a U>();
    }
};