From dfd967f239a079cf90f45bfc3d827547e6fe9008 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Wed, 30 Apr 2014 20:46:51 -0700 Subject: core: Inherit the default module --- src/libcore/default.rs | 27 +++++++++++++++++++++++++++ src/libcore/lib.rs | 1 + src/libstd/default.rs | 27 --------------------------- src/libstd/lib.rs | 1 + 4 files changed, 29 insertions(+), 27 deletions(-) create mode 100644 src/libcore/default.rs delete mode 100644 src/libstd/default.rs diff --git a/src/libcore/default.rs b/src/libcore/default.rs new file mode 100644 index 00000000000..9cf3a763648 --- /dev/null +++ b/src/libcore/default.rs @@ -0,0 +1,27 @@ +// Copyright 2013 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +//! The `Default` trait for types which may have meaningful default values + +use owned::Box; + +/// A trait that types which have a useful default value should implement. +pub trait Default { + /// Return the "default value" for a type. + fn default() -> Self; +} + +impl Default for @T { + fn default() -> @T { @Default::default() } +} + +impl Default for Box { + fn default() -> Box { box Default::default() } +} diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs index fe4809a5001..6730c252f52 100644 --- a/src/libcore/lib.rs +++ b/src/libcore/lib.rs @@ -33,6 +33,7 @@ pub mod ptr; pub mod kinds; pub mod ops; pub mod ty; +pub mod default; pub mod container; /* Core types and methods on primitives */ diff --git a/src/libstd/default.rs b/src/libstd/default.rs deleted file mode 100644 index 9cf3a763648..00000000000 --- a/src/libstd/default.rs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2013 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -//! The `Default` trait for types which may have meaningful default values - -use owned::Box; - -/// A trait that types which have a useful default value should implement. -pub trait Default { - /// Return the "default value" for a type. - fn default() -> Self; -} - -impl Default for @T { - fn default() -> @T { @Default::default() } -} - -impl Default for Box { - fn default() -> Box { box Default::default() } -} diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index 4485da81969..ef07fc2f995 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -141,6 +141,7 @@ pub use core::any; pub use core::cast; pub use core::char; pub use core::container; +pub use core::default; pub use core::intrinsics; pub use core::mem; pub use core::ptr; -- cgit 1.4.1-3-g733a5