aboutsummaryrefslogtreecommitdiff
path: root/vendor/rustix/src/utils.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rustix/src/utils.rs')
-rw-r--r--vendor/rustix/src/utils.rs82
1 files changed, 0 insertions, 82 deletions
diff --git a/vendor/rustix/src/utils.rs b/vendor/rustix/src/utils.rs
deleted file mode 100644
index d21ed88..0000000
--- a/vendor/rustix/src/utils.rs
+++ /dev/null
@@ -1,82 +0,0 @@
-//! Miscellaneous minor utilities.
-
-#![allow(dead_code)]
-#![allow(unused_macros)]
-
-use core::ffi::c_void;
-use core::mem::{align_of, size_of};
-use core::ptr::{null, null_mut, NonNull};
-
-/// Convert a `&T` into a `*const T` without using an `as`.
-#[inline]
-pub(crate) const fn as_ptr<T>(t: &T) -> *const T {
- t
-}
-
-/// Convert a `&mut T` into a `*mut T` without using an `as`.
-#[inline]
-pub(crate) fn as_mut_ptr<T>(t: &mut T) -> *mut T {
- t
-}
-
-/// Convert an `Option<&T>` into a possibly-null `*const T`.
-#[inline]
-pub(crate) const fn option_as_ptr<T>(t: Option<&T>) -> *const T {
- match t {
- Some(t) => t,
- None => null(),
- }
-}
-
-/// Convert an `Option<&mut T>` into a possibly-null `*mut T`.
-#[inline]
-pub(crate) fn option_as_mut_ptr<T>(t: Option<&mut T>) -> *mut T {
- match t {
- Some(t) => t,
- None => null_mut(),
- }
-}
-
-/// Convert a `*mut c_void` to a `*mut T`, checking that it is not null,
-/// misaligned, or pointing to a region of memory that wraps around the address
-/// space.
-pub(crate) fn check_raw_pointer<T>(value: *mut c_void) -> Option<NonNull<T>> {
- if (value as usize).checked_add(size_of::<T>()).is_none()
- || (value as usize) % align_of::<T>() != 0
- {
- return None;
- }
-
- NonNull::new(value.cast())
-}
-
-/// Create an array value containing all default values, inferring the type.
-#[inline]
-pub(crate) fn default_array<T: Default + Copy, const N: usize>() -> [T; N] {
- [T::default(); N]
-}
-
-/// Create a union value containing a default value in one of its arms.
-///
-/// The field names a union field which must have the same size as the union
-/// itself.
-macro_rules! default_union {
- ($union:ident, $field:ident) => {{
- let u = $union {
- $field: Default::default(),
- };
-
- // Assert that the given field initializes the whole union.
- #[cfg(test)]
- unsafe {
- let field_value = u.$field;
- assert_eq!(
- core::mem::size_of_val(&u),
- core::mem::size_of_val(&field_value)
- );
- const_assert_eq!(memoffset::offset_of_union!($union, $field), 0);
- }
-
- u
- }};
-}