pub struct ArenaSlice {
pub region_index: usize,
pub start: usize,
pub end: usize,
}Expand description
A handle to a contiguous byte range inside a TensorArena region.
Validity is not enforced by the type system — the caller must not use an
ArenaSlice after calling TensorArena::reset_all if new allocations
have been made that may overlap.
Fields§
§region_index: usizeIndex of the owning region in TensorArena::regions.
start: usizeStart byte offset (inclusive) within the region slab.
end: usizeEnd byte offset (exclusive) within the region slab.
Implementations§
Source§impl ArenaSlice
impl ArenaSlice
Sourcepub fn write_f32(
&self,
arena: &mut TensorArena,
values: &[f32],
) -> Result<(), ArenaError>
pub fn write_f32( &self, arena: &mut TensorArena, values: &[f32], ) -> Result<(), ArenaError>
Write values (as raw bytes) into this slice’s range in the arena.
§Errors
ArenaError::RegionNotFound— ifself.region_indexis out of bounds.ArenaError::SizeMismatch— ifvalues.len() * 4 != self.len().
Sourcepub fn read_f32<'a>(&self, arena: &'a TensorArena) -> &'a [f32]
pub fn read_f32<'a>(&self, arena: &'a TensorArena) -> &'a [f32]
Read a &[f32] from this slice’s range in the arena.
§Panics
Panics if self.region_index is out of bounds or if the byte range is
not properly aligned / sized for f32. In production code the caller
should ensure the slice was created by TensorArena::allocate with a
size that is a multiple of 4.
Trait Implementations§
Source§impl Clone for ArenaSlice
impl Clone for ArenaSlice
Source§fn clone(&self) -> ArenaSlice
fn clone(&self) -> ArenaSlice
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for ArenaSlice
Source§impl Debug for ArenaSlice
impl Debug for ArenaSlice
impl Eq for ArenaSlice
Source§impl PartialEq for ArenaSlice
impl PartialEq for ArenaSlice
Source§fn eq(&self, other: &ArenaSlice) -> bool
fn eq(&self, other: &ArenaSlice) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ArenaSlice
Auto Trait Implementations§
impl Freeze for ArenaSlice
impl RefUnwindSafe for ArenaSlice
impl Send for ArenaSlice
impl Sync for ArenaSlice
impl Unpin for ArenaSlice
impl UnsafeUnpin for ArenaSlice
impl UnwindSafe for ArenaSlice
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more