fn try_from(mut vec: Vec<T, A>) -> Result<[T; N], Vec<T, A>> {
        if vec.len() != N {
            return Err(vec);
        }

        // SAFETY: `.set_len(0)` is always sound.
        unsafe { vec.set_len(0) };

        // SAFETY: A `Vec`'s pointer is always aligned properly, and
        // the alignment the array needs is the same as the items.
        // We checked earlier that we have sufficient items.
        // The items will not double-drop as the `set_len`
        // tells the `Vec` not to also drop them.
        let array = unsafe { ptr::read(vec.as_ptr() as *const [T; N]) };
        Ok(array)
    }
A flag that indicates a panic has occurred in the filter test predicate.
This is used as a hint in the drop implementation to prevent consumption
of the remainder of the `DrainFilter`. Any unprocessed items will be
backshifted in the `vec`, but no further items will be dro
benchmarks/haystacks/code/rust-library.rs