Struct executorch_sys::torch::executor::ArrayRef

source ·
#[repr(C)]
pub struct ArrayRef<T> { pub Data: *const T, pub Length: ArrayRef_size_type, pub _phantom_0: PhantomData<UnsafeCell<T>>, }
Expand description

Represents a constant reference to an array (0 or more elements consecutively in memory), i.e. a start pointer and a length. It allows various APIs to take consecutive elements easily and conveniently.

This class does not own the underlying data, it is expected to be used in situations where the data resides in some other buffer, whose lifetime extends past that of the ArrayRef. For this reason, it is not in general safe to store an ArrayRef.

Span and ArrayRef are extrememly similar with the difference being ArrayRef views a list of constant elements and Span views a list of mutable elements. Clients should decide between the two based on if the list elements for their use case should be mutable.

This is intended to be trivially copyable, so it should be passed by value.

Fields§

§Data: *const T

The start of the array, in an external buffer.

§Length: ArrayRef_size_type

The number of elements.

§_phantom_0: PhantomData<UnsafeCell<T>>

Trait Implementations§

source§

impl<T: Debug> Debug for ArrayRef<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for ArrayRef<T>

§

impl<T> !RefUnwindSafe for ArrayRef<T>

§

impl<T> !Send for ArrayRef<T>

§

impl<T> !Sync for ArrayRef<T>

§

impl<T> Unpin for ArrayRef<T>
where T: Unpin,

§

impl<T> UnwindSafe for ArrayRef<T>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.