rust/src/test/run-pass/static-methods-in-traits2.rs
Daniel Micay c9d4ad07c4 remove the float type
It is simply defined as `f64` across every platform right now.

A use case hasn't been presented for a `float` type defined as the
highest precision floating point type implemented in hardware on the
platform. Performance-wise, using the smallest precision correct for the
use case greatly saves on cache space and allows for fitting more
numbers into SSE/AVX registers.

If there was a use case, this could be implemented as simply a type
alias or a struct thanks to `#[cfg(...)]`.

Closes #6592

The mailing list thread, for reference:

https://mail.mozilla.org/pipermail/rust-dev/2013-July/004632.html
2013-10-01 14:54:10 -04:00

20 lines
322 B
Rust

pub trait Number: NumConv {
fn from<T:Number>(n: T) -> Self;
}
impl Number for f64 {
fn from<T:Number>(n: T) -> f64 { n.to_float() }
}
pub trait NumConv {
fn to_float(&self) -> f64;
}
impl NumConv for f64 {
fn to_float(&self) -> f64 { *self }
}
pub fn main() {
let _: f64 = Number::from(0.0f64);
}