pub trait ScalarOperand: 'static + Clone { }
Expand description

Elements that can be used as direct operands in arithmetic with arrays.

For example, f64 is a ScalarOperand which means that for an array a, arithmetic like a + 1.0, and, a * 2., and a += 3. are allowed.

In the description below, let A be an array or array view, let B be an array with owned data, and let C be an array with mutable data.

ScalarOperand determines for which scalars K operations &A @ K, and B @ K, and C @= K are defined, as right hand side operands, for applicable arithmetic operators (denoted @).

Left hand side scalar operands are not related to this trait (they need one impl per concrete scalar type); but they are still implemented for the same types, allowing operations K @ &A, and K @ B for primitive numeric types K.

This trait does not limit which elements can be stored in an array in general. Non-ScalarOperand types can still participate in arithmetic as array elements in in array-array operations.

Implementations on Foreign Types