orengine-utils 3.1.0

This repository provides utilities for building high-performance applications.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
//! This module contains the [`clear_with`] function that works as `drain(..)` but faster.

/// This function is like [`drain`](Vec::drain) for the whole [`Vec`], but faster.
pub fn clear_with<T, F>(vec: &mut alloc::vec::Vec<T>, mut f: F)
where
    F: FnMut(T),
{
    for item in vec.iter_mut() {
        unsafe { f(core::ptr::read(item)) };
    }

    unsafe { vec.set_len(0) };
}