Trait init_with::InitWith
[−]
[src]
pub trait InitWith<T> { fn init_with<F>(init: F) -> Self where F: FnMut() -> T, Self: Sized; }
A trait that allows you to create an instance of a type by using a given function to generate each element.
Required Methods
fn init_with<F>(init: F) -> Self where F: FnMut() -> T, Self: Sized
Create a new instance of this type using the given function to fill elements.
Examples
Prefilling an array with a Vec, with no unsafe code*:
use init_with::InitWith; let src = vec![1, 2, 3]; let dest: [i32; 3] = { let mut idx = 0; //*okay, there's unsafe code in here, but you didn't have to write it <[i32; 3]>::init_with(|| { let val = src[idx]; idx += 1; val }) }; assert_eq!(src, dest);
Implementors
impl<T> InitWith<T> for [T; 0]
impl<T> InitWith<T> for [T; 1]
impl<T> InitWith<T> for [T; 2]
impl<T> InitWith<T> for [T; 3]
impl<T> InitWith<T> for [T; 4]
impl<T> InitWith<T> for [T; 5]
impl<T> InitWith<T> for [T; 6]
impl<T> InitWith<T> for [T; 7]
impl<T> InitWith<T> for [T; 8]
impl<T> InitWith<T> for [T; 9]
impl<T> InitWith<T> for [T; 10]
impl<T> InitWith<T> for [T; 11]
impl<T> InitWith<T> for [T; 12]
impl<T> InitWith<T> for [T; 13]
impl<T> InitWith<T> for [T; 14]
impl<T> InitWith<T> for [T; 15]
impl<T> InitWith<T> for [T; 16]
impl<T> InitWith<T> for [T; 17]
impl<T> InitWith<T> for [T; 18]
impl<T> InitWith<T> for [T; 19]
impl<T> InitWith<T> for [T; 20]
impl<T> InitWith<T> for [T; 21]
impl<T> InitWith<T> for [T; 22]
impl<T> InitWith<T> for [T; 23]
impl<T> InitWith<T> for [T; 24]
impl<T> InitWith<T> for [T; 25]
impl<T> InitWith<T> for [T; 26]
impl<T> InitWith<T> for [T; 27]
impl<T> InitWith<T> for [T; 28]
impl<T> InitWith<T> for [T; 29]
impl<T> InitWith<T> for [T; 30]
impl<T> InitWith<T> for [T; 31]
impl<T> InitWith<T> for [T; 32]