Crate set_slice[−][src]
A macro for setting values to slices in batch
Using this macro it is possible to set values to slices without setting each value individually
Syntax
set_slice! { SLICE = VALUE_1, VALUE_2, VALUE_3, ...; // list SLICE: (SIZE) = VALUE; // move SLICE = clone REFERENCE; // clone ref SLICE = copy REFERENCE; // copy ref ... }
Variable Definitions
SLICE: &mut [T] = name of slice
VALUE: impl Deref<Target = [T]> | AsRef<[T]> = value to be stored in slice
SIZE: usize = a constexpr that specifies the size of the slice
REFERENCE: &[T] = a reference to a slice
copy/clone = an identifier that speficies how to handle REFERENCE
Examples
let mut slice = [0; 3]; // example slice let vec = [-1, -2]; set_slice! { slice = 1, 2, 3; slice[..2] = copy &vec; } assert_eq!(slice, [-1, -2, 3]);
Semantics and Notes on Syntax
list
the list: VALUE_1, VALUE_2, VALUE_3, ... is counted and converted into an array
after conversion it is has the same semantics as move applied to the new array
move
the VALUE is moved into set_slice and dropped
the contents of VALUE are stored into the slice
clone
the REFERENCE &[T] values are cloned into the slice
T must implement Clone
copy
the REFERENCE &[T] values are copied into the slice
T must implement Copy
Cargo features
This crate allows for use in no-std environment.
Macros
| set_slice |
a macro for setting parts of slices, see crate level docs for more info |