]> git.lizzy.rs Git - rust.git/blobdiff - library/core/src/convert/num.rs
Auto merge of #106302 - compiler-errors:terr-coerce-w-infer, r=estebank
[rust.git] / library / core / src / convert / num.rs
index 9c0d7e9a1e89e25014d5d42809caecd70c485a7f..45e2f711c6c90f363e0947b4d0fb1d1a78cf6a6e 100644 (file)
@@ -168,6 +168,26 @@ macro_rules! impl_from_bool {
 // Float -> Float
 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
 macro_rules! try_from_unbounded {
     ($source:ty, $($target:ty),*) => {$(