Trait sandkiste::types::MaybeArray
source · pub trait MaybeArray {
type Element<'c>;
fn try_array(&self) -> Result<(), DatumViewError>;
fn array_len(&self) -> Result<usize, MachineError>;
fn array_get(
&self,
index: usize
) -> Result<Self::Element<'static>, MachineError>;
fn array_set<'c>(
&self,
index: usize,
element: Self::Element<'c>
) -> Result<(), MachineError>;
fn array_push<'c>(
&self,
element: Self::Element<'c>
) -> Result<(), MachineError>;
fn array_truncate(&self, len: usize) -> Result<(), MachineError>;
fn array_to_iter<'b>(&'b self) -> Result<ArrayIter<'b, Self>, MachineError> { ... }
fn array_to_vec(
&self,
maxlen: usize
) -> Result<Vec<Self::Element<'static>>, MachineError> { ... }
}
Expand description
Types that can be an array
Required Associated Types§
Required Methods§
sourcefn try_array(&self) -> Result<(), DatumViewError>
fn try_array(&self) -> Result<(), DatumViewError>
Return error unless datum is an array-like type
sourcefn array_len(&self) -> Result<usize, MachineError>
fn array_len(&self) -> Result<usize, MachineError>
Array length
sourcefn array_get(&self, index: usize) -> Result<Self::Element<'static>, MachineError>
fn array_get(&self, index: usize) -> Result<Self::Element<'static>, MachineError>
Retrieve element at index
NOTE: If index is out of bounds, may either return error or null
sourcefn array_set<'c>(
&self,
index: usize,
element: Self::Element<'c>
) -> Result<(), MachineError>
fn array_set<'c>(
&self,
index: usize,
element: Self::Element<'c>
) -> Result<(), MachineError>
Set element at index
NOTE: If index is out of bounds, may either grow array or return error
sourcefn array_push<'c>(&self, element: Self::Element<'c>) -> Result<(), MachineError>
fn array_push<'c>(&self, element: Self::Element<'c>) -> Result<(), MachineError>
Push element to array
sourcefn array_truncate(&self, len: usize) -> Result<(), MachineError>
fn array_truncate(&self, len: usize) -> Result<(), MachineError>
Truncate array
Provided Methods§
sourcefn array_to_iter<'b>(&'b self) -> Result<ArrayIter<'b, Self>, MachineError>
fn array_to_iter<'b>(&'b self) -> Result<ArrayIter<'b, Self>, MachineError>
Create Iterator
over entries of array-like datum
sourcefn array_to_vec(
&self,
maxlen: usize
) -> Result<Vec<Self::Element<'static>>, MachineError>
fn array_to_vec(
&self,
maxlen: usize
) -> Result<Vec<Self::Element<'static>>, MachineError>
Create Vec
from array-like datum