Struct executorch_sys::torch::executor::Span

source ·
#[repr(C)]
pub struct Span<T> { pub data_: *mut T, pub length_: Span_size_type, pub _phantom_0: PhantomData<UnsafeCell<T>>, }
Expand description

Represent a 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 Span.

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_: *mut T

The start of the array, in an external buffer.

§length_: Span_size_type

The number of elements.

§_phantom_0: PhantomData<UnsafeCell<T>>

Trait Implementations§

source§

impl<T: Debug> Debug for Span<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 Span<T>

§

impl<T> !RefUnwindSafe for Span<T>

§

impl<T> !Send for Span<T>

§

impl<T> !Sync for Span<T>

§

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

§

impl<T> UnwindSafe for Span<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.