pub struct MtsArray { /* private fields */ }Expand description
Wrapper around mts_array_t that provides a more convenient API to use it
in Rust code, and in particular to access the underlying array as an &dyn Any instance where possible.
Implementations§
Source§impl MtsArray
impl MtsArray
Sourcepub fn from_raw(array: mts_array_t) -> MtsArray
pub fn from_raw(array: mts_array_t) -> MtsArray
Create a new MtsArray from a mts_array_t, taking ownership of the
data.
Sourcepub fn into_raw(self) -> mts_array_t
pub fn into_raw(self) -> mts_array_t
Get the underlying mts_array_t, transferring ownership of the data to
the caller.
Sourcepub fn as_any(&self) -> &dyn Any
pub fn as_any(&self) -> &dyn Any
Get the underlying array as an &dyn Any instance.
This function panics if the array was not created though this crate and
the crate::Array trait.
Sourcepub fn as_ndarray<T>(&self) -> RwLockReadGuard<'_, ArrayD<T>>where
T: 'static,
pub fn as_ndarray<T>(&self) -> RwLockReadGuard<'_, ArrayD<T>>where
T: 'static,
Get the data in this ArrayRef as a ndarray::ArcArray. This function
will panic if the data in this mts_array_t is not a ndarray::ArcArray.
Sourcepub fn as_raw_mut(&mut self) -> &mut mts_array_t
pub fn as_raw_mut(&mut self) -> &mut mts_array_t
Get the underlying mts_array_t as a mutable reference.
Sourcepub fn as_mut(&mut self) -> ArrayRefMut<'_>
pub fn as_mut(&mut self) -> ArrayRefMut<'_>
Get a mutable reference to this array
Sourcepub fn origin(&self) -> Result<mts_data_origin_t, Error>
pub fn origin(&self) -> Result<mts_data_origin_t, Error>
Get the origin of this array.
This corresponds to mts_array_t.origin, but with a more convenient API.
Sourcepub fn device(&self) -> Result<DLDevice, Error>
pub fn device(&self) -> Result<DLDevice, Error>
Get the device of this array.
This corresponds to mts_array_t.device, but with a more convenient API.
Sourcepub fn dtype(&self) -> Result<DLDataType, Error>
pub fn dtype(&self) -> Result<DLDataType, Error>
Get the dtype of this array.
This corresponds to mts_array_t.dtype, but with a more convenient API.
Sourcepub fn as_dlpack(
&self,
device: DLDevice,
stream: Option<i64>,
max_version: DLPackVersion,
) -> Result<DLPackTensor, Error>
pub fn as_dlpack( &self, device: DLDevice, stream: Option<i64>, max_version: DLPackVersion, ) -> Result<DLPackTensor, Error>
Get a dlpk::DLPackTensor from this array, if supported by the underlying data.
This corresponds to mts_array_t.as_dlpack, but with a more convenient API.
pub fn from_dlpack( &self, dlpack_tensor: DLPackTensor, ) -> Result<MtsArray, Error>
Sourcepub fn shape(&self) -> Result<&[usize], Error>
pub fn shape(&self) -> Result<&[usize], Error>
Get the shape of this array.
This corresponds to mts_array_t.shape, but with a more convenient API.
Sourcepub fn reshape(&mut self, shape: &[usize]) -> Result<(), Error>
pub fn reshape(&mut self, shape: &[usize]) -> Result<(), Error>
Reshape the data in this array, if supported by the underlying data.
This corresponds to mts_array_t.reshape, but with a more convenient API.
Sourcepub fn swap_axes(&mut self, axis_1: usize, axis_2: usize) -> Result<(), Error>
pub fn swap_axes(&mut self, axis_1: usize, axis_2: usize) -> Result<(), Error>
Swap two axes of the data in this array, if supported by the underlying data.
This corresponds to mts_array_t.swap_axes, but with a more convenient API.
Sourcepub fn create(
&self,
shape: &[usize],
fill_value: ArrayRef<'_>,
) -> Result<MtsArray, Error>
pub fn create( &self, shape: &[usize], fill_value: ArrayRef<'_>, ) -> Result<MtsArray, Error>
Create a new array with the same options as this one (dtype, device) and the given shape, filled with zeros.
This corresponds to mts_array_t.create, but with a more convenient API.