Trait init_with::InitWith [] [src]

pub trait InitWith<T> {
    fn init_with<F>(init: F) -> Self
        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

Create a new instance of this type using the given function to fill elements.


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;

    <[i32; 3]>::init_with(|| {
        let val = src[idx];
        idx += 1;

assert_eq!(src, dest);