Type Alias extendr_api::prelude::prelude::ArcArray

source ·
pub type ArcArray<A, D> = ArrayBase<OwnedArcRepr<A>, D>;
Expand description

An array where the data has shared ownership and is copy on write.

The ArcArray<A, D> is parameterized by A for the element type and D for the dimensionality.

It can act as both an owner as the data as well as a shared reference (view like). Calling a method for mutating elements on ArcArray, for example view_mut() or get_mut(), will break sharing and require a clone of the data (if it is not uniquely held).

ArcArray uses atomic reference counting like Arc, so it is Send and Sync (when allowed by the element type of the array too).

ArrayBase is used to implement both the owned arrays and the views; see its docs for an overview of all array features.

See also:

Aliased Type§

struct ArcArray<A, D> {
    pub(crate) data: OwnedArcRepr<A>,
    pub(crate) ptr: NonNull<A>,
    pub(crate) dim: D,
    pub(crate) strides: D,
}

Fields§

§data: OwnedArcRepr<A>§ptr: NonNull<A>§dim: D§strides: D