Trait possibly_uninit::slice::BorrowUninitSlice[][src]

pub unsafe trait BorrowUninitSlice<Item> {
    fn borrow_uninit_slice(&self) -> &[MaybeUninit<Item>];

    unsafe fn assume_init(&self) -> &[Item] { ... }
}

A trait somewhat similar to core::borrow::Borrow, but very specific about being a slice containing MaybeUninit<Item>

The main reason for it is to allow use of array-like types in these scenarios:

  • Wrapper<[Item]>
  • Wrapper<MaybeUninit<Item>>
  • Wrapper<ReferenceType<Item>>
  • Wrapper<ReferenceType<MaybeUninit<Item>>>
  • Wrapper<ReferenceTypeMut<Item>>
  • Wrapper<ReferenceTypeMut<MaybeUninit<Item>>>

Required methods

fn borrow_uninit_slice(&self) -> &[MaybeUninit<Item>][src]

Borrows the value as a slice of MaybeUninit<Item>

Loading content...

Provided methods

unsafe fn assume_init(&self) -> &[Item][src]

Treat the slice as initialized.

This method is unsafe because calling it without all the slice being initialized is undefined behavior.

Loading content...

Implementors

impl BorrowUninitSlice<u8> for str[src]

Not very useful, but for the sake of completeness.

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 0][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 1][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 2][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 3][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 4][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 5][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 6][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 7][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 8][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 9][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 10][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 11][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 12][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 13][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 14][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 15][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 16][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 17][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 18][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 19][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 20][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 21][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 22][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 23][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 24][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 25][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 26][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 27][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 28][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 29][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 30][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 31][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>; 32][src]

impl<Item> BorrowUninitSlice<Item> for [MaybeUninit<Item>][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 0][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 1][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 2][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 3][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 4][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 5][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 6][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 7][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 8][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 9][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 10][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 11][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 12][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 13][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 14][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 15][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 16][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 17][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 18][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 19][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 20][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 21][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 22][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 23][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 24][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 25][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 26][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 27][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 28][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 29][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 30][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 31][src]

impl<Item> BorrowUninitSlice<Item> for [Item; 32][src]

impl<Item> BorrowUninitSlice<Item> for [Item][src]

impl<T> BorrowUninitSlice<T> for OutSlice<T>[src]

impl<T: ?Sized, Item> BorrowUninitSlice<Item> for T where
    T: SameDataDeref + Deref,
    T::Target: BorrowUninitSlice<Item>, 
[src]

Loading content...