]> git.lizzy.rs Git - rust.git/commitdiff
Add the `alloc::prelude` module
authorSimon Sapin <simon.sapin@exyr.org>
Fri, 6 Jul 2018 22:43:11 +0000 (00:43 +0200)
committerSimon Sapin <simon.sapin@exyr.org>
Sat, 7 Jul 2018 21:08:43 +0000 (23:08 +0200)
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

src/liballoc/lib.rs
src/liballoc/prelude.rs [new file with mode: 0644]

index 35bf8d1b792f9605aa5c4764e154c5e92bbce165..ef619527e064a34d2f8f387881619570393cde5d 100644 (file)
@@ -169,7 +169,7 @@ mod boxed {
 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 (file)
index 0000000..53b5e93
--- /dev/null
@@ -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;