kernel::init

Function pin_init_array_from_fn

Source
pub fn pin_init_array_from_fn<I, const N: usize, T, E>(
    make_init: impl FnMut(usize) -> I,
) -> impl PinInit<[T; N], E>
where I: PinInit<T, E>,
Expand description

Initializes an array by initializing each element via the provided initializer.

§Examples

use kernel::{sync::{Arc, Mutex}, init::pin_init_array_from_fn, new_mutex};
let array: Arc<[Mutex<usize>; 1_000]> =
    Arc::pin_init(pin_init_array_from_fn(|i| new_mutex!(i)), GFP_KERNEL).unwrap();
assert_eq!(array.len(), 1_000);