Trait scratchpad::IntoMutSliceLikePtr[][src]

pub unsafe trait IntoMutSliceLikePtr<T: ?Sized> where
    T: SliceLike
{ fn into_mut_slice_like_ptr(ptr: *mut Self) -> *mut T; }

Trait for reinterpreting a pointer to a given type as a compatible SliceLike pointer that uses the exact same backing memory.

Safety

This trait is marked as unsafe due to the potential for data loss if implemented incorrectly. It is used within this crate to determine which slice conversions are valid for a given Allocation without requiring the allocated data to be modified in any way. The source and destination types must use the same exact storage memory, and dropping the data stored in the destination type must also perform any cleanup required by the original source type.

Required methods

fn into_mut_slice_like_ptr(ptr: *mut Self) -> *mut T[src]

Reinterprets a mutable pointer of this type as a SliceLike pointer.

Examples

use scratchpad::IntoMutSliceLikePtr;

let mut value = 3.14159;
let value_ptr: *mut f64 = &mut value;

let slice_ptr = IntoMutSliceLikePtr::into_mut_slice_like_ptr(
    value_ptr,
);
assert_eq!(unsafe { &*slice_ptr }, [3.14159]);
Loading content...

Implementations on Foreign Types

impl IntoMutSliceLikePtr<[u8]> for str[src]

impl IntoMutSliceLikePtr<[u8]> for CStr[src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 1][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 2][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 3][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 4][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 5][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 6][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 7][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 8][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 9][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 10][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 11][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 12][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 13][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 14][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 15][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 16][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 17][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 18][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 19][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 20][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 21][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 22][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 23][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 24][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 25][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 26][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 27][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 28][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 29][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 30][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 31][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 32][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 33][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 34][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 35][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 36][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 37][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 38][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 39][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 40][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 41][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 42][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 43][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 44][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 45][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 46][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 47][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 48][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 49][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 50][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 51][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 52][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 53][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 54][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 55][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 56][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 57][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 58][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 59][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 60][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 61][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 62][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 63][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 64][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 128][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 256][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 512][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 1024][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 2048][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 4096][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 8192][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 16384][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 32768][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 65536][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 131072][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 262144][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 524288][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 1048576][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 2097152][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 4194304][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 8388608][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 16777216][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 33554432][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 67108864][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 134217728][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 268435456][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 536870912][src]

impl<T> IntoMutSliceLikePtr<[T]> for [T; 1073741824][src]

Loading content...

Implementors

Loading content...