pub struct ArrayRef<'a> { /* private fields */ }Expand description
Reference to a data array in metatensor-core
The data array can come from any origin, this struct provides facilities to
access data that was created through the crate::Array trait, and in particular
as ndarray::ArrayD instances.
Implementations§
Source§impl<'a> ArrayRef<'a>
impl<'a> ArrayRef<'a>
Sourcepub unsafe fn from_raw(array: mts_array_t) -> ArrayRef<'a>
pub unsafe fn from_raw(array: mts_array_t) -> ArrayRef<'a>
Create a new ArrayRef from the given raw mts_array_t
This is a VERY unsafe function, creating a lifetime out of thin air.
Make sure the lifetime is actually constrained by the lifetime of the
owner of this mts_array_t.
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 to_any(self) -> &'a dyn Any
pub fn to_any(self) -> &'a dyn Any
Get a reference to the underlying array as an &dyn Any instance,
re-using the same lifetime as the ArrayRef.
This function panics if the array was not created though this crate and
the crate::Array trait.
Sourcepub fn as_ndarray_lock<T>(&self) -> &Arc<RwLock<ArrayD<T>>>where
T: 'static,
pub fn as_ndarray_lock<T>(&self) -> &Arc<RwLock<ArrayD<T>>>where
T: 'static,
Extract the Arc<RwLock<ArrayD<T>>> from this ArrayRef, if it
contains one.
This function will panic if the data in the mts_array_t in this
ArrayRef is a different kind of array.
Sourcepub fn to_ndarray_lock<T>(self) -> &'a Arc<RwLock<ArrayD<T>>>where
T: 'static,
pub fn to_ndarray_lock<T>(self) -> &'a Arc<RwLock<ArrayD<T>>>where
T: 'static,
Extract the Arc<RwLock<ArrayD<T>>> from this ArrayRef, if it
contains one, keeping the initial lifetime of the ArrayRef.
This function will panic if the data in the mts_array_t in this
ArrayRef is a different kind of 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.
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.