From 772bf2090e04db68790549bae36e5180423f9f65 Mon Sep 17 00:00:00 2001 From: Caleb Zulawski Date: Thu, 21 Oct 2021 00:23:21 +0000 Subject: [PATCH] Hide select impl in sealed trait --- crates/core_simd/src/select.rs | 36 ++++++++++++++++------------------ 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/crates/core_simd/src/select.rs b/crates/core_simd/src/select.rs index c3d69a83088b..d976231a03a8 100644 --- a/crates/core_simd/src/select.rs +++ b/crates/core_simd/src/select.rs @@ -2,24 +2,16 @@ use crate::simd::intrinsics; use crate::simd::{LaneCount, Mask, MaskElement, Simd, SimdElement, SupportedLaneCount}; mod sealed { - pub trait Sealed {} + pub trait Sealed { + fn select(mask: Mask, true_values: Self, false_values: Self) -> Self; + } } use sealed::Sealed; /// Supporting trait for vector `select` function -pub trait Select: Sealed { - #[doc(hidden)] - fn select(mask: Mask, true_values: Self, false_values: Self) -> Self; -} +pub trait Select: Sealed {} -impl Sealed for Simd -where - T: SimdElement, - LaneCount: SupportedLaneCount, -{ -} - -impl Select> for Simd +impl Sealed> for Simd where T: SimdElement, LaneCount: SupportedLaneCount, @@ -30,11 +22,22 @@ where } } -impl Sealed for Mask +impl Select> for Simd +where + T: SimdElement, + LaneCount: SupportedLaneCount, +{ +} + +impl Sealed for Mask where T: MaskElement, LaneCount: SupportedLaneCount, { + #[inline] + fn select(mask: Self, true_values: Self, false_values: Self) -> Self { + mask & true_values | !mask & false_values + } } impl Select for Mask @@ -42,11 +45,6 @@ where T: MaskElement, LaneCount: SupportedLaneCount, { - #[doc(hidden)] - #[inline] - fn select(mask: Self, true_values: Self, false_values: Self) -> Self { - mask & true_values | !mask & false_values - } } impl Mask