doc: Update tutorial description of core
This commit is contained in:
parent
37634f3363
commit
243e601e51
@ -2554,26 +2554,65 @@ a hash representing the crate metadata.
|
|||||||
|
|
||||||
## The core library
|
## The core library
|
||||||
|
|
||||||
The Rust [core] library is the language runtime and contains
|
The Rust core library provides runtime features required by the language,
|
||||||
required memory management and task scheduling code as well as a
|
including the task scheduler and memory allocators, as well as library
|
||||||
number of modules necessary for effective usage of the primitive
|
support for Rust built-in types, platform abstractions, and other commonly
|
||||||
types. Methods on [vectors] and [strings], implementations of most
|
used features.
|
||||||
comparison and math operators, and pervasive types like [`Option`]
|
|
||||||
and [`Result`] live in core.
|
|
||||||
|
|
||||||
All Rust programs link to the core library and import its contents,
|
[`core`] includes modules corresponding to each of the integer types, each of
|
||||||
as if the following were written at the top of the crate.
|
the floating point types, the [`bool`] type, [tuples], [characters], [strings],
|
||||||
|
[vectors], [managed boxes], [owned boxes],
|
||||||
|
and unsafe and borrowed [pointers]. Additionally, `core` provides
|
||||||
|
some pervasive types ([`option`] and [`result`]),
|
||||||
|
[task] creation and [communication] primitives,
|
||||||
|
platform abstractions ([`os`] and [`path`]), basic
|
||||||
|
I/O abstractions ([`io`]), [containers] like [`hashmap`],
|
||||||
|
common traits ([`kinds`], [`ops`], [`cmp`], [`num`],
|
||||||
|
[`to_str`], [`clone`]), and complete bindings to the C standard library ([`libc`]).
|
||||||
|
|
||||||
~~~ {.xfail-test}
|
### Core injection and the Rust prelude
|
||||||
extern mod core;
|
|
||||||
use core::*;
|
|
||||||
~~~
|
|
||||||
|
|
||||||
[core]: core/index.html
|
`core` is imported at the topmost level of every crate by default, as
|
||||||
[vectors]: core/vec.html
|
if the first line of each crate was
|
||||||
|
|
||||||
|
extern mod core;
|
||||||
|
|
||||||
|
This means that the contents of core can be accessed from from any context
|
||||||
|
with the `core::` path prefix, as in `use core::vec`, `use core::task::spawn`,
|
||||||
|
etc.
|
||||||
|
|
||||||
|
Additionally, `core` contains a `prelude` module that reexports many of the
|
||||||
|
most common core modules, types and traits. The contents of the prelude are
|
||||||
|
imported into every *module* by default. Implicitly, all modules behave as if
|
||||||
|
they contained the following prologue:
|
||||||
|
|
||||||
|
use core::prelude::*;
|
||||||
|
|
||||||
|
[`core`]: core/index.html
|
||||||
|
[`bool`]: core/bool.html
|
||||||
|
[tuples]: core/tuple.html
|
||||||
|
[characters]: core/char.html
|
||||||
[strings]: core/str.html
|
[strings]: core/str.html
|
||||||
[`Option`]: core/option.html
|
[vectors]: core/vec.html
|
||||||
[`Result`]: core/result.html
|
[managed boxes]: core/managed.html
|
||||||
|
[owned boxes]: core/owned.html
|
||||||
|
[pointers]: core/ptr.html
|
||||||
|
[`option`]: core/option.html
|
||||||
|
[`result`]: core/result.html
|
||||||
|
[task]: core/task.html
|
||||||
|
[communication]: core/comm.html
|
||||||
|
[`os`]: core/os.html
|
||||||
|
[`path`]: core/path.html
|
||||||
|
[`io`]: core/io.html
|
||||||
|
[containers]: core/container.html
|
||||||
|
[`hashmap`]: core/hashmap.html
|
||||||
|
[`kinds`]: core/kinds.html
|
||||||
|
[`ops`]: core/ops.html
|
||||||
|
[`cmp`]: core/cmp.html
|
||||||
|
[`num`]: core/num.html
|
||||||
|
[`to_str`]: core/to_str.html
|
||||||
|
[`clone`]: core/clone.html
|
||||||
|
[`libc`]: core/libc.html
|
||||||
|
|
||||||
# What next?
|
# What next?
|
||||||
|
|
||||||
@ -2585,10 +2624,7 @@ tutorials on individual topics.
|
|||||||
* [Macros][macros]
|
* [Macros][macros]
|
||||||
* [The foreign function interface][ffi]
|
* [The foreign function interface][ffi]
|
||||||
|
|
||||||
There is further documentation on the [wiki], including articles about
|
There is further documentation on the [wiki].
|
||||||
[unit testing] in Rust, [documenting][rustdoc] and [packaging][cargo]
|
|
||||||
Rust code, and a discussion of the [attributes] used to apply metadata
|
|
||||||
to code.
|
|
||||||
|
|
||||||
[borrow]: tutorial-borrowed-ptr.html
|
[borrow]: tutorial-borrowed-ptr.html
|
||||||
[tasks]: tutorial-tasks.html
|
[tasks]: tutorial-tasks.html
|
||||||
|
@ -39,7 +39,7 @@ etc.
|
|||||||
|
|
||||||
Additionally, `core` contains a `prelude` module that reexports many of the
|
Additionally, `core` contains a `prelude` module that reexports many of the
|
||||||
most common core modules, types and traits. The contents of the prelude are
|
most common core modules, types and traits. The contents of the prelude are
|
||||||
imported inte every *module* by default. Implicitly, all modules behave as if
|
imported into every *module* by default. Implicitly, all modules behave as if
|
||||||
they contained the following prologue:
|
they contained the following prologue:
|
||||||
|
|
||||||
use core::prelude::*;
|
use core::prelude::*;
|
||||||
|
Loading…
Reference in New Issue
Block a user