Trait ArrayReformulate

Source
pub trait ArrayReformulate<T, const N: usize>: Array + AsSlice<Item = T> {
    // Required methods
    const fn reformulate<const M: usize>(self) -> [T; M]
       where [(); { _ }]:;
    const fn reformulate_ref<const M: usize>(&self) -> &[T; M]
       where [(); { _ }]:;
    const fn reformulate_mut<const M: usize>(&mut self) -> &mut [T; M]
       where [(); { _ }]:;
    const fn reformulate_pin_ref<const M: usize>(
        self: Pin<&Self>,
    ) -> Pin<&[T; M]>
       where [(); { _ }]:;
    const fn reformulate_pin_mut<const M: usize>(
        self: Pin<&mut Self>,
    ) -> Pin<&mut [T; M]>
       where [(); { _ }]:;
    const fn try_reformulate<const M: usize>(self) -> Result<[T; M], [T; N]>;
    const fn try_reformulate_ref<const M: usize>(&self) -> Option<&[T; M]>;
    const fn try_reformulate_mut<const M: usize>(
        &mut self,
    ) -> Option<&mut [T; M]>;
    const fn try_reformulate_pin_ref<const M: usize>(
        self: Pin<&Self>,
    ) -> Option<Pin<&[T; M]>>;
    const fn try_reformulate_pin_mut<const M: usize>(
        self: Pin<&mut Self>,
    ) -> Option<Pin<&mut [T; M]>>;
}

Required Methods§

Source

const fn reformulate<const M: usize>(self) -> [T; M]
where [(); { _ }]:,

Source

const fn reformulate_ref<const M: usize>(&self) -> &[T; M]
where [(); { _ }]:,

Source

const fn reformulate_mut<const M: usize>(&mut self) -> &mut [T; M]
where [(); { _ }]:,

Source

const fn reformulate_pin_ref<const M: usize>(self: Pin<&Self>) -> Pin<&[T; M]>
where [(); { _ }]:,

Source

const fn reformulate_pin_mut<const M: usize>( self: Pin<&mut Self>, ) -> Pin<&mut [T; M]>
where [(); { _ }]:,

Source

const fn try_reformulate<const M: usize>(self) -> Result<[T; M], [T; N]>

Source

const fn try_reformulate_ref<const M: usize>(&self) -> Option<&[T; M]>

Source

const fn try_reformulate_mut<const M: usize>(&mut self) -> Option<&mut [T; M]>

Source

const fn try_reformulate_pin_ref<const M: usize>( self: Pin<&Self>, ) -> Option<Pin<&[T; M]>>

Source

const fn try_reformulate_pin_mut<const M: usize>( self: Pin<&mut Self>, ) -> Option<Pin<&mut [T; M]>>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<T, const N: usize> ArrayReformulate<T, N> for [T; N]

Source§

fn reformulate<const M: usize>(self) -> [T; M]
where [(); { _ }]:,

Source§

fn reformulate_ref<const M: usize>(&self) -> &[T; M]
where [(); { _ }]:,

Source§

fn reformulate_mut<const M: usize>(&mut self) -> &mut [T; M]
where [(); { _ }]:,

Source§

fn reformulate_pin_ref<const M: usize>(self: Pin<&Self>) -> Pin<&[T; M]>
where [(); { _ }]:,

Source§

fn reformulate_pin_mut<const M: usize>(self: Pin<&mut Self>) -> Pin<&mut [T; M]>
where [(); { _ }]:,

Source§

fn try_reformulate<const M: usize>(self) -> Result<[T; M], Self>

Source§

fn try_reformulate_ref<const M: usize>(&self) -> Option<&[T; M]>

Source§

fn try_reformulate_mut<const M: usize>(&mut self) -> Option<&mut [T; M]>

Source§

fn try_reformulate_pin_ref<const M: usize>( self: Pin<&Self>, ) -> Option<Pin<&[T; M]>>

Source§

fn try_reformulate_pin_mut<const M: usize>( self: Pin<&mut Self>, ) -> Option<Pin<&mut [T; M]>>

Implementors§