Struct safer_ffi::slice::slice_boxed_Layout
source · [−]#[repr(C)]pub struct slice_boxed_Layout<T>where
T: ReprC,
NonNullOwned<T>: ConcreteReprC,
usize: ConcreteReprC,{
pub ptr: CLayoutOf<NonNullOwned<T>>,
pub len: CLayoutOf<usize>,
}
Available on crate feature
alloc
only.Expand description
Box
<[T]>
(fat pointer to a slice),
but with a guaranteed #[repr(C)]
layout.
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.
Fields
ptr: CLayoutOf<NonNullOwned<T>>
Pointer to the first element (if any).
len: CLayoutOf<usize>
Element count
Trait Implementations
sourceimpl<T> CType for slice_boxed_Layout<T>where
T: ReprC,
NonNullOwned<T>: ConcreteReprC,
usize: ConcreteReprC,
impl<T> CType for slice_boxed_Layout<T>where
T: ReprC,
NonNullOwned<T>: ConcreteReprC,
usize: ConcreteReprC,
type OPAQUE_KIND = Concrete
fn short_name() -> String
fn define_self__impl(
language: &dyn HeaderLanguage,
definer: &mut dyn Definer
) -> Result<()>
fn zeroed() -> Self
fn define_self(
language: &dyn HeaderLanguage,
definer: &mut dyn Definer
) -> Result<()>
fn name(_language: &dyn HeaderLanguage) -> String
fn name_wrapping_var(language: &dyn HeaderLanguage, var_name: &str) -> String
sourcefn csharp_marshaler() -> Option<String>
fn csharp_marshaler() -> Option<String>
Optional marshaler attached to the type (e.g.,
[MarshalAs(UnmanagedType.FunctionPtr)]
) Read moresourceimpl<T> Clone for slice_boxed_Layout<T>where
T: ReprC,
NonNullOwned<T>: ConcreteReprC,
usize: ConcreteReprC,
impl<T> Clone for slice_boxed_Layout<T>where
T: ReprC,
NonNullOwned<T>: ConcreteReprC,
usize: ConcreteReprC,
sourceimpl<T> ReprC for slice_boxed_Layout<T>where
T: ReprC,
NonNullOwned<T>: ConcreteReprC,
usize: ConcreteReprC,
impl<T> ReprC for slice_boxed_Layout<T>where
T: ReprC,
NonNullOwned<T>: ConcreteReprC,
usize: ConcreteReprC,
impl<T> Copy for slice_boxed_Layout<T>where
T: ReprC,
NonNullOwned<T>: ConcreteReprC,
usize: ConcreteReprC,
Auto Trait Implementations
impl<T> !RefUnwindSafe for slice_boxed_Layout<T>
impl<T> !Send for slice_boxed_Layout<T>
impl<T> !Sync for slice_boxed_Layout<T>
impl<T> !Unpin for slice_boxed_Layout<T>
impl<T> !UnwindSafe for slice_boxed_Layout<T>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CompatExt for T
impl<T> CompatExt for T
sourceimpl<T> FitForCBox for T
impl<T> FitForCBox for T
type CBoxWrapped = Box_<T>
type CBoxWrapped = Box_<T>
Available on crate feature
alloc
only.sourceimpl<T> ManuallyDropMut for T
impl<T> ManuallyDropMut for T
type Ret = ManuallyDrop<T>
fn manually_drop_mut(&'__ mut self) -> &'__ mut ManuallyDrop<T>
sourceimpl<T> UpcastAny for Twhere
T: 'static,
impl<T> UpcastAny for Twhere
T: 'static,
sourcefn upcast_any(&self) -> &(dyn Any + 'static)
fn upcast_any(&self) -> &(dyn Any + 'static)
Available on crate feature
headers
only.