diff options
| author | bors <bors@rust-lang.org> | 2013-09-14 00:01:04 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-09-14 00:01:04 -0700 |
| commit | 2aa578efd9834e37ad52879ff10ee2c2aa938389 (patch) | |
| tree | aa459cb42c65433dfbddca28040db544aea89f59 /src/libstd/num | |
| parent | 4ac10f8f6e8e07c70fadb676170c5402442e2243 (diff) | |
| parent | 93683ae6da3a47f1cd0644a093cb4b1b0bee7faa (diff) | |
| download | rust-2aa578efd9834e37ad52879ff10ee2c2aa938389.tar.gz rust-2aa578efd9834e37ad52879ff10ee2c2aa938389.zip | |
auto merge of #9115 : erickt/rust/master, r=erickt
This is a series of patches to modernize option and result. The highlights are: * rename `.unwrap_or_default(value)` and etc to `.unwrap_or(value)` * add `.unwrap_or_default()` that uses the `Default` trait * add `Default` implementations for vecs, HashMap, Option * add `Option.and(T) -> Option<T>`, `Option.and_then(&fn() -> Option<T>) -> Option<T>`, `Option.or(T) -> Option<T>`, and `Option.or_else(&fn() -> Option<T>) -> Option<T>` * add `option::ToOption`, `option::IntoOption`, `option::AsOption`, `result::ToResult`, `result::IntoResult`, `result::AsResult`, `either::ToEither`, and `either::IntoEither`, `either::AsEither` * renamed `Option::chain*` and `Result::chain*` to `and_then` and `or_else` to avoid the eventual collision with `Iterator.chain`. * Added a bunch of impls of `Default` * Added a `#[deriving(Default)]` syntax extension * Removed impls of `Zero` for `Option<T>` and vecs.
Diffstat (limited to 'src/libstd/num')
| -rw-r--r-- | src/libstd/num/f32.rs | 6 | ||||
| -rw-r--r-- | src/libstd/num/f64.rs | 6 | ||||
| -rw-r--r-- | src/libstd/num/float.rs | 6 | ||||
| -rw-r--r-- | src/libstd/num/int_macros.rs | 6 | ||||
| -rw-r--r-- | src/libstd/num/uint_macros.rs | 6 |
5 files changed, 30 insertions, 0 deletions
diff --git a/src/libstd/num/f32.rs b/src/libstd/num/f32.rs index 899d6236aaa..0addcce3eb6 100644 --- a/src/libstd/num/f32.rs +++ b/src/libstd/num/f32.rs @@ -12,6 +12,7 @@ #[allow(missing_doc)]; #[allow(non_uppercase_statics)]; +use default::Default; use libc::c_int; use num::{Zero, One, strconv}; use num::{FPCategory, FPNaN, FPInfinite , FPZero, FPSubnormal, FPNormal}; @@ -237,6 +238,11 @@ impl Orderable for f32 { } } +impl Default for f32 { + #[inline] + fn default() -> f32 { 0.0 } +} + impl Zero for f32 { #[inline] fn zero() -> f32 { 0.0 } diff --git a/src/libstd/num/f64.rs b/src/libstd/num/f64.rs index 6ab8350a115..b0675278238 100644 --- a/src/libstd/num/f64.rs +++ b/src/libstd/num/f64.rs @@ -13,6 +13,7 @@ #[allow(missing_doc)]; #[allow(non_uppercase_statics)]; +use default::Default; use libc::c_int; use num::{Zero, One, strconv}; use num::{FPCategory, FPNaN, FPInfinite , FPZero, FPSubnormal, FPNormal}; @@ -260,6 +261,11 @@ impl Orderable for f64 { } } +impl Default for f64 { + #[inline] + fn default() -> f64 { 0.0 } +} + impl Zero for f64 { #[inline] fn zero() -> f64 { 0.0 } diff --git a/src/libstd/num/float.rs b/src/libstd/num/float.rs index df26fadae16..3952f5478f7 100644 --- a/src/libstd/num/float.rs +++ b/src/libstd/num/float.rs @@ -23,6 +23,7 @@ #[allow(missing_doc)]; #[allow(non_uppercase_statics)]; +use default::Default; use num::{Zero, One, strconv}; use num::FPCategory; use num; @@ -382,6 +383,11 @@ impl Orderable for float { } } +impl Default for float { + #[inline] + fn default() -> float { 0.0 } +} + impl Zero for float { #[inline] fn zero() -> float { 0.0 } diff --git a/src/libstd/num/int_macros.rs b/src/libstd/num/int_macros.rs index 07cafb0a4f1..ae2a56b835d 100644 --- a/src/libstd/num/int_macros.rs +++ b/src/libstd/num/int_macros.rs @@ -16,6 +16,7 @@ macro_rules! int_module (($T:ty, $bits:expr) => (mod generated { #[allow(non_uppercase_statics)]; +use default::Default; use num::{ToStrRadix, FromStrRadix}; use num::{CheckedDiv, Zero, One, strconv}; use prelude::*; @@ -167,6 +168,11 @@ impl Orderable for $T { } } +impl Default for $T { + #[inline] + fn default() -> $T { 0 } +} + impl Zero for $T { #[inline] fn zero() -> $T { 0 } diff --git a/src/libstd/num/uint_macros.rs b/src/libstd/num/uint_macros.rs index effeb60fc22..3deb7312b04 100644 --- a/src/libstd/num/uint_macros.rs +++ b/src/libstd/num/uint_macros.rs @@ -16,6 +16,7 @@ macro_rules! uint_module (($T:ty, $T_SIGNED:ty, $bits:expr) => (mod generated { #[allow(non_uppercase_statics)]; +use default::Default; use num::BitCount; use num::{ToStrRadix, FromStrRadix}; use num::{CheckedDiv, Zero, One, strconv}; @@ -172,6 +173,11 @@ impl Orderable for $T { } } +impl Default for $T { + #[inline] + fn default() -> $T { 0 } +} + impl Zero for $T { #[inline] fn zero() -> $T { 0 } |
