[−][src]Struct safer_ffi::slice::slice_raw
Like slice_ref
and slice_mut
, but with any lifetime attached
whatsoever.
It is only intended to be used as the parameter of a callback that
locally borrows it, due to limitations of the [ReprC
][
trait@crate::layout::ReprC
] design w.r.t. higher-rank trait bounds.
C layout (for some given type T)
typedef struct {
// Cannot be NULL
T * ptr;
size_t len;
} slice_T;
Nullable pointer?
If you want to support the above typedef, but where the ptr
field is
allowed to be NULL
(with the contents of len
then being undefined)
use the Option< slice_ptr<_> >
type.
C Layout
Fields
ptr: NonNull<T>
Pointer to the first element (if any).
len: usize
Element count
Implementations
impl<T> slice_raw<T>
[src]
pub unsafe fn as_ref<'borrow>(
self: &'borrow slice_raw<T>
) -> slice_ref<'borrow, T>
[src]
self: &'borrow slice_raw<T>
) -> slice_ref<'borrow, T>
Safety
- For the duration of the
'borrow
, the pointer must point to the beginning of a valid and immutable null-terminated slice oflen
T
s.
pub unsafe fn as_mut<'borrow>(
self: &'borrow mut slice_raw<T>
) -> slice_mut<'borrow, T>
[src]
self: &'borrow mut slice_raw<T>
) -> slice_mut<'borrow, T>
Safety
- For the duration of the
'borrow
, the pointer must point to the beginning of a valid and immutable null-terminated slice oflen
T
s.
Trait Implementations
impl<T: Debug> Debug for slice_raw<T>
[src]
impl<'lt, T: 'lt> From<slice_mut<'lt, T>> for slice_raw<T>
[src]
impl<'lt, T: 'lt> From<slice_ref<'lt, T>> for slice_raw<T>
[src]
impl<T> ReprC for slice_raw<T> where
NonNull<T>: ReprC,
<NonNull<T> as ReprC>::CLayout: CType<OPAQUE_KIND = Concrete>,
usize: ReprC,
<usize as ReprC>::CLayout: CType<OPAQUE_KIND = Concrete>,
T: ReprC,
[src]
NonNull<T>: ReprC,
<NonNull<T> as ReprC>::CLayout: CType<OPAQUE_KIND = Concrete>,
usize: ReprC,
<usize as ReprC>::CLayout: CType<OPAQUE_KIND = Concrete>,
T: ReprC,
Auto Trait Implementations
impl<T> RefUnwindSafe for slice_raw<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> !Send for slice_raw<T>
impl<T> !Sync for slice_raw<T>
impl<T> Unpin for slice_raw<T>
impl<T> UnwindSafe for slice_raw<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,