pub struct Array1<T: ZeroInit> { /* private fields */ }
Expand description
§1-D array accessor class.
This class represents 1-D array accessor. Array accessor provides array-like data read/write functions, but does not handle memory management. Thus, it is more like a random access iterator, but with multi-dimension support.
- tparam T - Array value type.
Implementations§
Source§impl<T: ZeroInit> Array1<T>
impl<T: ZeroInit> Array1<T>
Sourcepub fn new_default() -> Array1<T>
pub fn new_default() -> Array1<T>
Constructs zero-sized 1-D array.
use vox_geometry_rust::array1::Array1;
let arr: Array1<f32> = Array1::new_default();
assert_eq!(0, arr.size());
Sourcepub fn new(size: usize, init_val: Option<T>) -> Array1<T>
pub fn new(size: usize, init_val: Option<T>) -> Array1<T>
Constructs 1-D array with given \p size and fill it with \p initVal.
- parameter: size Initial size of the array.
- parameter: initVal Initial value of each array element.
use vox_geometry_rust::array1::Array1;
let arr = Array1::new(9, Some(1.5));
assert_eq!(9, arr.size());
for i in 0..9 {
assert_eq!(1.5, arr[i]);
}
Sourcepub fn new_lst(lst: Vec<T>) -> Array1<T>
pub fn new_lst(lst: Vec<T>) -> Array1<T>
\brief Constructs 1-D array with given initializer list \p lst.
This constructor will build 1-D array with given initializer list \p lst such as
use vox_geometry_rust::array1::Array1;
let arr: Array1<f32> = Array1::new_lst(vec![1.0, 2.0, 4.0, 9.0, 3.0]);
- parameter: lst Initializer list that should be copy to the new array.
use vox_geometry_rust::array1::Array1;
let arr = Array1::new_lst(vec![1.0, 2.0, 3.0, 4.0]);
assert_eq!(4, arr.size());
for i in 0..4 {
assert_eq!(i as f32 + 1.0, arr[i]);
}
Source§impl<T: ZeroInit> Array1<T>
impl<T: ZeroInit> Array1<T>
Sourcepub fn set_scalar(&mut self, value: T)
pub fn set_scalar(&mut self, value: T)
Sets entire array with given \p value.
use vox_geometry_rust::array1::Array1;
let mut arr1 = Array1::new(12, Some(-1.0));
arr1.set_scalar(3.5);
for a in arr1.iter() {
assert_eq!(3.5, *a);
}
Sourcepub fn set_self(&mut self, other: Array1<T>)
pub fn set_self(&mut self, other: Array1<T>)
Copies given array \p other to this array.
use vox_geometry_rust::array1::Array1;
let mut arr1 = Array1::new(12, Some(-1.0));
arr1.set_self(Array1::new_default());
assert_eq!(0, arr1.size());
Sourcepub fn set_lst(&mut self, lst: Vec<T>)
pub fn set_lst(&mut self, lst: Vec<T>)
Copies given initializer list \p lst to this array.
use vox_geometry_rust::array1::Array1;
let mut arr2 = Array1::new(12, Some(-1.0));
arr2.set_lst(vec![2.0, 5.0, 9.0, -1.0]);
assert_eq!(4, arr2.size());
assert_eq!(2.0, arr2[0]);
assert_eq!(5.0, arr2[1]);
assert_eq!(9.0, arr2[2]);
assert_eq!(-1.0, arr2[3]);
Sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Clears the array and resizes to zero.
use vox_geometry_rust::array1::Array1;
let mut arr1 = Array1::new_lst(vec![2.0, 5.0, 9.0, -1.0]);
arr1.clear();
assert_eq!(0, arr1.size());
Sourcepub fn resize(&mut self, size: usize, init_val: Option<T>)
pub fn resize(&mut self, size: usize, init_val: Option<T>)
Resizes the array with \p size and fill the new element with \p initVal.
use vox_geometry_rust::array1::Array1;
let mut arr:Array1<f32> = Array1::new_default();
arr.resize(9, None);
assert_eq!(9, arr.size());
for i in 0..9 {
assert_eq!(0.0, arr[i]);
}
arr.resize(12, Some(4.0));
assert_eq!(12, arr.size());
for i in 0..12 {
if i < 9 {
assert_eq!(0.0, arr[i]);
} else {
assert_eq!(4.0, arr[i]);
}
}
Sourcepub fn swap(&mut self, other: &mut Array1<T>)
pub fn swap(&mut self, other: &mut Array1<T>)
Swaps the content of the array with \p other array.
Sourcepub fn append(&mut self, other: &mut Array1<T>)
pub fn append(&mut self, other: &mut Array1<T>)
Appends \p other array at the end of the array.
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for Array1<T>
impl<T> RefUnwindSafe for Array1<T>where
T: RefUnwindSafe,
impl<T> Send for Array1<T>where
T: Send,
impl<T> Sync for Array1<T>where
T: Sync,
impl<T> Unpin for Array1<T>where
T: Unpin,
impl<T> UnwindSafe for Array1<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more