diff --git a/crates/core_simd/src/lib.rs b/crates/core_simd/src/lib.rs
index 7f57847c9c2..717b882b64b 100644
--- a/crates/core_simd/src/lib.rs
+++ b/crates/core_simd/src/lib.rs
@@ -35,7 +35,11 @@
feature(stdarch_x86_avx512)
)]
#![warn(missing_docs, clippy::missing_inline_in_public_items)] // basically all items, really
-#![deny(unsafe_op_in_unsafe_fn, clippy::undocumented_unsafe_blocks)]
+#![deny(
+ unsafe_op_in_unsafe_fn,
+ unreachable_pub,
+ clippy::undocumented_unsafe_blocks
+)]
#![doc(test(attr(deny(warnings))))]
#![allow(internal_features)]
#![unstable(feature = "portable_simd", issue = "86656")]
diff --git a/crates/core_simd/src/masks/bitmask.rs b/crates/core_simd/src/masks/bitmask.rs
index db4312d5bf8..8221d8f17e9 100644
--- a/crates/core_simd/src/masks/bitmask.rs
+++ b/crates/core_simd/src/masks/bitmask.rs
@@ -5,7 +5,7 @@ use core::marker::PhantomData;
/// A mask where each lane is represented by a single bit.
#[repr(transparent)]
-pub struct Mask(
+pub(crate) struct Mask(
as SupportedLaneCount>::BitMask,
PhantomData,
)
@@ -78,7 +78,7 @@ where
{
#[inline]
#[must_use = "method returns a new mask and does not mutate the original value"]
- pub fn splat(value: bool) -> Self {
+ pub(crate) fn splat(value: bool) -> Self {
let mut mask = as SupportedLaneCount>::BitMask::default();
if value {
mask.as_mut().fill(u8::MAX)
@@ -93,12 +93,12 @@ where
#[inline]
#[must_use = "method returns a new bool and does not mutate the original value"]
- pub unsafe fn test_unchecked(&self, lane: usize) -> bool {
+ pub(crate) unsafe fn test_unchecked(&self, lane: usize) -> bool {
(self.0.as_ref()[lane / 8] >> (lane % 8)) & 0x1 > 0
}
#[inline]
- pub unsafe fn set_unchecked(&mut self, lane: usize, value: bool) {
+ pub(crate) unsafe fn set_unchecked(&mut self, lane: usize, value: bool) {
unsafe {
self.0.as_mut()[lane / 8] ^= ((value ^ self.test_unchecked(lane)) as u8) << (lane % 8)
}
@@ -106,7 +106,7 @@ where
#[inline]
#[must_use = "method returns a new vector and does not mutate the original value"]
- pub fn to_int(self) -> Simd {
+ pub(crate) fn to_int(self) -> Simd {
unsafe {
core::intrinsics::simd::simd_select_bitmask(
self.0,
@@ -118,19 +118,19 @@ where
#[inline]
#[must_use = "method returns a new mask and does not mutate the original value"]
- pub unsafe fn from_int_unchecked(value: Simd) -> Self {
+ pub(crate) unsafe fn from_int_unchecked(value: Simd) -> Self {
unsafe { Self(core::intrinsics::simd::simd_bitmask(value), PhantomData) }
}
#[inline]
- pub fn to_bitmask_integer(self) -> u64 {
+ pub(crate) fn to_bitmask_integer(self) -> u64 {
let mut bitmask = [0u8; 8];
bitmask[..self.0.as_ref().len()].copy_from_slice(self.0.as_ref());
u64::from_ne_bytes(bitmask)
}
#[inline]
- pub fn from_bitmask_integer(bitmask: u64) -> Self {
+ pub(crate) fn from_bitmask_integer(bitmask: u64) -> Self {
let mut bytes = as SupportedLaneCount>::BitMask::default();
let len = bytes.as_mut().len();
bytes
@@ -141,7 +141,7 @@ where
#[inline]
#[must_use = "method returns a new mask and does not mutate the original value"]
- pub fn convert(self) -> Mask
+ pub(crate) fn convert(self) -> Mask
where
U: MaskElement,
{
@@ -151,13 +151,13 @@ where
#[inline]
#[must_use = "method returns a new bool and does not mutate the original value"]
- pub fn any(self) -> bool {
+ pub(crate) fn any(self) -> bool {
self != Self::splat(false)
}
#[inline]
#[must_use = "method returns a new bool and does not mutate the original value"]
- pub fn all(self) -> bool {
+ pub(crate) fn all(self) -> bool {
self == Self::splat(true)
}
}
diff --git a/crates/core_simd/src/masks/full_masks.rs b/crates/core_simd/src/masks/full_masks.rs
index ae55cf1f8fa..a693ea90b9c 100644
--- a/crates/core_simd/src/masks/full_masks.rs
+++ b/crates/core_simd/src/masks/full_masks.rs
@@ -3,7 +3,7 @@
use crate::simd::{LaneCount, MaskElement, Simd, SupportedLaneCount};
#[repr(transparent)]
-pub struct Mask(Simd)
+pub(crate) struct Mask(Simd)
where
T: MaskElement,
LaneCount: SupportedLaneCount;
@@ -103,36 +103,36 @@ where
{
#[inline]
#[must_use = "method returns a new mask and does not mutate the original value"]
- pub fn splat(value: bool) -> Self {
+ pub(crate) fn splat(value: bool) -> Self {
Self(Simd::splat(if value { T::TRUE } else { T::FALSE }))
}
#[inline]
#[must_use = "method returns a new bool and does not mutate the original value"]
- pub unsafe fn test_unchecked(&self, lane: usize) -> bool {
+ pub(crate) unsafe fn test_unchecked(&self, lane: usize) -> bool {
T::eq(self.0[lane], T::TRUE)
}
#[inline]
- pub unsafe fn set_unchecked(&mut self, lane: usize, value: bool) {
+ pub(crate) unsafe fn set_unchecked(&mut self, lane: usize, value: bool) {
self.0[lane] = if value { T::TRUE } else { T::FALSE }
}
#[inline]
#[must_use = "method returns a new vector and does not mutate the original value"]
- pub fn to_int(self) -> Simd {
+ pub(crate) fn to_int(self) -> Simd {
self.0
}
#[inline]
#[must_use = "method returns a new mask and does not mutate the original value"]
- pub unsafe fn from_int_unchecked(value: Simd) -> Self {
+ pub(crate) unsafe fn from_int_unchecked(value: Simd) -> Self {
Self(value)
}
#[inline]
#[must_use = "method returns a new mask and does not mutate the original value"]
- pub fn convert(self) -> Mask
+ pub(crate) fn convert(self) -> Mask
where
U: MaskElement,
{
@@ -221,14 +221,14 @@ where
#[inline]
#[must_use = "method returns a new bool and does not mutate the original value"]
- pub fn any(self) -> bool {
+ pub(crate) fn any(self) -> bool {
// Safety: use `self` as an integer vector
unsafe { core::intrinsics::simd::simd_reduce_any(self.to_int()) }
}
#[inline]
#[must_use = "method returns a new bool and does not mutate the original value"]
- pub fn all(self) -> bool {
+ pub(crate) fn all(self) -> bool {
// Safety: use `self` as an integer vector
unsafe { core::intrinsics::simd::simd_reduce_all(self.to_int()) }
}