pub fn new_from_layout(layout: Layout) -> Option<Gc<MaybeUninit<T>>> {
        let tl = Layout::new::<T>();
        if layout.size() < tl.size() && layout.align() >= tl.align() {
            return None;
        }
        Some(Gc::from_inner(GcBox::new_from_layout(layout)))
    }
/// Constructs a new `Gc<MaybeUninit<T>>` which is capable of storing data
/// up-to the size permissible by `layout`.
///
/// This can be useful if you want to store a value with a custom layout,
/// but have the collector treat the value as if it were T.
///
/// `layout` must be at least as large as `T`, and have an alignment which
/// is the same, or bigger than `T`.
Constructs a new `Gc>` which is capable of storing data
up-to the size permissible by `layout`.

This can be useful if you want to store a value with a custom layout,
but have the collector treat the value as if it were T.


Constructs a new ` Gc > ` which is capable of storing data up - to the size permissible by ` layout ` . This can be useful if you want to store a value with a custom layout but have the collector treat the value as if it were T .
pub fn new_from_layout(layout: Layout) -> Option<Gc<MaybeUninit<T>>> {
        let tl = Layout::new::<T>();
        if layout.size() < tl.size() && layout.align() >= tl.align() {
            return None;
        }
        Some(Gc::from_inner(GcBox::new_from_layout(layout)))
    }
pub fn new_from_layout ( layout : Layout ) -> Option < Gc < MaybeUninit < T > > > { let tl = Layout :: new :: < T > ( ) ; if layout . size ( ) < tl . size ( ) && layout . align ( ) >= tl . align ( ) { return None ; } Some ( Gc :: from_inner ( GcBox :: new_from_layout ( layout ) ) ) }
Constructs a new `Gc<MaybeUninit<T>>` which is capable of storing data
up-to the size permissible by `layout`.
Constructs a new ` Gc<MaybeUninit<T >> ` which is capable of storing data up - to the size permissible by ` layout ` .
layout
Layout