Implement From<bool> for f32, f64

This commit is contained in:
Jacob Pratt 2022-08-10 18:19:07 -04:00
parent 16990de53e
commit b134d1108f
No known key found for this signature in database
GPG Key ID: B80E19E4662B5AA4

View File

@ -168,6 +168,26 @@ macro_rules! impl_from_bool {
// Float -> Float // Float -> Float
impl_from! { f32, f64, #[stable(feature = "lossless_float_conv", since = "1.6.0")] } impl_from! { f32, f64, #[stable(feature = "lossless_float_conv", since = "1.6.0")] }
// bool -> Float
#[stable(feature = "float_from_bool", since = "CURRENT_RUSTC_VERSION")]
#[rustc_const_unstable(feature = "const_num_from_num", issue = "87852")]
impl const From<bool> for f32 {
/// Converts `bool` to `f32` losslessly.
#[inline]
fn from(small: bool) -> Self {
small as u8 as Self
}
}
#[stable(feature = "float_from_bool", since = "CURRENT_RUSTC_VERSION")]
#[rustc_const_unstable(feature = "const_num_from_num", issue = "87852")]
impl const From<bool> for f64 {
/// Converts `bool` to `f64` losslessly.
#[inline]
fn from(small: bool) -> Self {
small as u8 as Self
}
}
// no possible bounds violation // no possible bounds violation
macro_rules! try_from_unbounded { macro_rules! try_from_unbounded {
($source:ty, $($target:ty),*) => {$( ($source:ty, $($target:ty),*) => {$(