/rust/registry/src/index.crates.io-1949cf8c6b5b557f/rav1e-0.7.1/src/util/uninit.rs
Line | Count | Source |
1 | | // Copyright (c) 2019-2022, The rav1e contributors. All rights reserved |
2 | | // |
3 | | // This source code is subject to the terms of the BSD 2 Clause License and |
4 | | // the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License |
5 | | // was not distributed with this source code in the LICENSE file, you can |
6 | | // obtain it at www.aomedia.org/license/software. If the Alliance for Open |
7 | | // Media Patent License 1.0 was not distributed with this source code in the |
8 | | // PATENTS file, you can obtain it at www.aomedia.org/license/patent. |
9 | | |
10 | | use std::mem::MaybeUninit; |
11 | | |
12 | 0 | pub fn init_slice_repeat_mut<T: Copy>( |
13 | 0 | slice: &'_ mut [MaybeUninit<T>], value: T, |
14 | 0 | ) -> &'_ mut [T] { |
15 | | // Fill all of slice |
16 | 0 | for a in slice.iter_mut() { |
17 | 0 | *a = MaybeUninit::new(value); |
18 | 0 | } |
19 | | |
20 | | // SAFETY: Defined behavior, since all elements of slice are initialized |
21 | 0 | unsafe { slice_assume_init_mut(slice) } |
22 | 0 | } Unexecuted instantiation: rav1e::util::uninit::init_slice_repeat_mut::<i32> Unexecuted instantiation: rav1e::util::uninit::init_slice_repeat_mut::<u16> Unexecuted instantiation: rav1e::util::uninit::init_slice_repeat_mut::<u8> Unexecuted instantiation: rav1e::util::uninit::init_slice_repeat_mut::<u32> Unexecuted instantiation: rav1e::util::uninit::init_slice_repeat_mut::<i16> |
23 | | |
24 | | /// Assume all the elements are initialized. |
25 | | #[inline(always)] |
26 | 0 | pub unsafe fn slice_assume_init_mut<T: Copy>( |
27 | 0 | slice: &'_ mut [MaybeUninit<T>], |
28 | 0 | ) -> &'_ mut [T] { |
29 | 0 | &mut *(slice as *mut [MaybeUninit<T>] as *mut [T]) |
30 | 0 | } Unexecuted instantiation: rav1e::util::uninit::slice_assume_init_mut::<i32> Unexecuted instantiation: rav1e::util::uninit::slice_assume_init_mut::<u16> Unexecuted instantiation: rav1e::util::uninit::slice_assume_init_mut::<i16> Unexecuted instantiation: rav1e::util::uninit::slice_assume_init_mut::<i16> Unexecuted instantiation: rav1e::util::uninit::slice_assume_init_mut::<u8> Unexecuted instantiation: rav1e::util::uninit::slice_assume_init_mut::<u32> Unexecuted instantiation: rav1e::util::uninit::slice_assume_init_mut::<i32> Unexecuted instantiation: rav1e::util::uninit::slice_assume_init_mut::<i8> |