SliceExt

Trait SliceExt 

Source
pub trait SliceExt<T> {
    // Required methods
    fn to_mut_seq(&mut self) -> Seq<&mut T>;
    fn to_ref_seq(&self) -> Seq<&T>;
    fn as_ptr_own(&self) -> (*const T, Ghost<&PtrOwn<[T]>>);
    fn as_mut_ptr_own(&mut self) -> (*mut T, Ghost<&mut PtrOwn<[T]>>);
}

Required Methods§

Source

fn to_mut_seq(&mut self) -> Seq<&mut T>

Source

fn to_ref_seq(&self) -> Seq<&T>

Source

fn as_ptr_own(&self) -> (*const T, Ghost<&PtrOwn<[T]>>)

terminates

Source

fn as_mut_ptr_own(&mut self) -> (*mut T, Ghost<&mut PtrOwn<[T]>>)

terminates

Implementations on Foreign Types§

Source§

impl<T> SliceExt<T> for [T]

Source§

fn to_mut_seq(&mut self) -> Seq<&mut T>

(opaque)

ensures

result.len() == self@.len()

ensures

forall<i> 0 <= i && i < result.len() ==> result[i] == &mut self[i]

Source§

fn to_ref_seq(&self) -> Seq<&T>

(opaque)

ensures

result.len() == self@.len()

ensures

forall<i> 0 <= i && i < result.len() ==> result[i] == &self[i]

Source§

fn as_ptr_own(&self) -> (*const T, Ghost<&PtrOwn<[T]>>)

Convert &[T] to *const T and a shared ownership token.

terminates

ensures

result.0 == result.1.ptr() as *const T

ensures

self == result.1.val()

erasure

Self::as_ptr

Source§

fn as_mut_ptr_own(&mut self) -> (*mut T, Ghost<&mut PtrOwn<[T]>>)

Convert &mut [T] to *mut T and a mutable ownership token.

terminates

ensures

result.0 as *const T == result.1.ptr() as *const T

ensures

&*self == result.1.val()

ensures

&^self == (^result.1).val()

erasure

Self::as_mut_ptr

Implementors§