about summary refs log tree commit diff
path: root/src/liballoc
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-07-09 14:29:59 +0000
committerbors <bors@rust-lang.org>2018-07-09 14:29:59 +0000
commitc6807bb1b282e0c5398aa4e659dbc165b6f3c81b (patch)
treebf6777921022043285a1cb13f97b903b7ffbfdb2 /src/liballoc
parentc30acc7187fe5ab9ca8a34411bb89bfe241a0662 (diff)
parent5b795cf57e42aa31da7cb175d8ff27633085b5d7 (diff)
downloadrust-c6807bb1b282e0c5398aa4e659dbc165b6f3c81b.tar.gz
rust-c6807bb1b282e0c5398aa4e659dbc165b6f3c81b.zip
Auto merge of #52159 - SimonSapin:alloc-prelude, r=alexcrichton
Add the `alloc::prelude` module

It contains the re-exports that are in `std::prelude::v1` but not in `core::prelude::v1`.

Calling it prelude is somewhat of a misnomer since (unlike those modules in `std` or `core`) its contents are never implicitly imported in modules. Rather it is intended to be used with an explicit glob import like `use alloc::prelude::*;`. However there is precedent for the same misnomer with `std::io::prelude`, for example.

This new module is unstable with the same feature name as the `alloc` care. They are proposed for stabilization together in RFC https://github.com/rust-lang/rfcs/pull/2480.
Diffstat (limited to 'src/liballoc')
-rw-r--r--src/liballoc/lib.rs2
-rw-r--r--src/liballoc/prelude.rs29
2 files changed, 30 insertions, 1 deletions
diff --git a/src/liballoc/lib.rs b/src/liballoc/lib.rs
index 35bf8d1b792..ef619527e06 100644
--- a/src/liballoc/lib.rs
+++ b/src/liballoc/lib.rs
@@ -169,7 +169,7 @@ pub mod collections;
 pub mod sync;
 pub mod rc;
 pub mod raw_vec;
-
+pub mod prelude;
 pub mod borrow;
 pub mod fmt;
 pub mod slice;
diff --git a/src/liballoc/prelude.rs b/src/liballoc/prelude.rs
new file mode 100644
index 00000000000..53b5e93a66e
--- /dev/null
+++ b/src/liballoc/prelude.rs
@@ -0,0 +1,29 @@
+// Copyright 2018 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 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+//! The alloc Prelude
+//!
+//! The purpose of this module is to alleviate imports of commonly-used
+//! items of the `alloc` crate by adding a glob import to the top of modules:
+//!
+//! ```
+//! # #![allow(unused_imports)]
+//! # #![feature(alloc)]
+//! extern crate alloc;
+//! use alloc::prelude::*;
+//! ```
+
+#![unstable(feature = "alloc", issue = "27783")]
+
+#[unstable(feature = "alloc", issue = "27783")] pub use borrow::ToOwned;
+#[unstable(feature = "alloc", issue = "27783")] pub use boxed::Box;
+#[unstable(feature = "alloc", issue = "27783")] pub use slice::SliceConcatExt;
+#[unstable(feature = "alloc", issue = "27783")] pub use string::{String, ToString};
+#[unstable(feature = "alloc", issue = "27783")] pub use vec::Vec;