@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
**Int to string**
|
**Int to string**
|
||||||
|
|
||||||
Use [`ToStr`](../std/to_str/trait.ToStr.html).
|
Use [`ToStr`](std/to_str/trait.ToStr.html).
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
let x: int = 42;
|
let x: int = 42;
|
||||||
@@ -13,8 +13,8 @@ let y: String = x.to_str().to_string();
|
|||||||
|
|
||||||
**String to int**
|
**String to int**
|
||||||
|
|
||||||
Use [`FromStr`](../std/from_str/trait.FromStr.html), and its helper function,
|
Use [`FromStr`](std/from_str/trait.FromStr.html), and its helper function,
|
||||||
[`from_str`](../std/from_str/fn.from_str.html).
|
[`from_str`](std/from_str/fn.from_str.html).
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
let x: Option<int> = from_str("42");
|
let x: Option<int> = from_str("42");
|
||||||
@@ -35,8 +35,8 @@ let y: String = format!("{:X}", x); // uppercase hexadecimal
|
|||||||
|
|
||||||
**String to int, in non-base-10**
|
**String to int, in non-base-10**
|
||||||
|
|
||||||
Use [`FromStrRadix`](../std/num/trait.FromStrRadix.html), and its helper
|
Use [`FromStrRadix`](std/num/trait.FromStrRadix.html), and its helper
|
||||||
function, [`from_str_radix`](../std/num/fn.from_str_radix.html).
|
function, [`from_str_radix`](std/num/fn.from_str_radix.html).
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
use std::num;
|
use std::num;
|
||||||
@@ -48,7 +48,7 @@ let y: i64 = x.unwrap();
|
|||||||
**Vector of Bytes to String**
|
**Vector of Bytes to String**
|
||||||
|
|
||||||
To return a Borrowed String Slice (&str) use the str helper function
|
To return a Borrowed String Slice (&str) use the str helper function
|
||||||
[`from_utf8`](../std/str/fn.from_utf8.html).
|
[`from_utf8`](std/str/fn.from_utf8.html).
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
use std::str;
|
use std::str;
|
||||||
@@ -58,7 +58,7 @@ let x: &str = str::from_utf8(bytes).unwrap();
|
|||||||
~~~
|
~~~
|
||||||
|
|
||||||
To return an Owned String use the str helper function
|
To return an Owned String use the str helper function
|
||||||
[`from_utf8_owned`](../std/str/fn.from_utf8_owned.html).
|
[`from_utf8_owned`](std/str/fn.from_utf8_owned.html).
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
use std::str;
|
use std::str;
|
||||||
@@ -68,8 +68,8 @@ let x: Option<String> =
|
|||||||
let y: String = x.unwrap();
|
let y: String = x.unwrap();
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
To return a [`MaybeOwned`](../std/str/enum.MaybeOwned.html) use the str helper
|
To return a [`MaybeOwned`](std/str/type.MaybeOwned.html) use the str helper
|
||||||
function [`from_utf8_lossy`](../std/str/fn.from_utf8_owned.html).
|
function [`from_utf8_lossy`](std/str/fn.from_utf8_owned.html).
|
||||||
This function also replaces non-valid utf-8 sequences with U+FFFD replacement
|
This function also replaces non-valid utf-8 sequences with U+FFFD replacement
|
||||||
character.
|
character.
|
||||||
|
|
||||||
@@ -85,11 +85,11 @@ let y = str::from_utf8_lossy(x);
|
|||||||
## How do I read from a file?
|
## How do I read from a file?
|
||||||
|
|
||||||
Use
|
Use
|
||||||
[`File::open`](../std/io/fs/struct.File.html#method.open)
|
[`File::open`](std/io/fs/struct.File.html#method.open)
|
||||||
to create a
|
to create a
|
||||||
[`File`](../std/io/fs/struct.File.html)
|
[`File`](std/io/fs/struct.File.html)
|
||||||
struct, which implements the
|
struct, which implements the
|
||||||
[`Reader`](../std/io/trait.Reader.html)
|
[`Reader`](std/io/trait.Reader.html)
|
||||||
trait.
|
trait.
|
||||||
|
|
||||||
~~~ {.ignore}
|
~~~ {.ignore}
|
||||||
@@ -103,7 +103,8 @@ let reader : File = File::open(&path).unwrap_or_else(on_error);
|
|||||||
|
|
||||||
## How do I iterate over the lines in a file?
|
## How do I iterate over the lines in a file?
|
||||||
|
|
||||||
Use the [`lines`](../std/io/trait.Buffer.html#method.lines) method on a [`BufferedReader`](../std/io/buffered/struct.BufferedReader.html).
|
Use the [`lines`](std/io/trait.Buffer.html#method.lines) method on a
|
||||||
|
[`BufferedReader`](std/io/struct.BufferedReader.html).
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
use std::io::BufferedReader;
|
use std::io::BufferedReader;
|
||||||
@@ -121,7 +122,7 @@ for line in reader.lines() {
|
|||||||
|
|
||||||
## How do I search for a substring?
|
## How do I search for a substring?
|
||||||
|
|
||||||
Use the [`find_str`](../std/str/trait.StrSlice.html#tymethod.find_str) method.
|
Use the [`find_str`](std/str/trait.StrSlice.html#tymethod.find_str) method.
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
let str = "Hello, this is some random string";
|
let str = "Hello, this is some random string";
|
||||||
@@ -132,7 +133,7 @@ let index: Option<uint> = str.find_str("rand");
|
|||||||
|
|
||||||
## How do I get the length of a vector?
|
## How do I get the length of a vector?
|
||||||
|
|
||||||
The [`Container`](../std/container/trait.Container.html) trait provides the `len` method.
|
The [`Container`](std/container/trait.Container.html) trait provides the `len` method.
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
let u: Vec<u32> = vec![0, 1, 2];
|
let u: Vec<u32> = vec![0, 1, 2];
|
||||||
@@ -144,7 +145,7 @@ println!("u: {}, v: {}, w: {}", u.len(), v.len(), w.len()); // 3, 4, 5
|
|||||||
|
|
||||||
## How do I iterate over a vector?
|
## How do I iterate over a vector?
|
||||||
|
|
||||||
Use the [`iter`](../std/vec/trait.ImmutableVector.html#tymethod.iter) method.
|
Use the [`iter`](std/slice/trait.ImmutableVector.html#tymethod.iter) method.
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
let values: Vec<int> = vec![1, 2, 3, 4, 5];
|
let values: Vec<int> = vec![1, 2, 3, 4, 5];
|
||||||
@@ -153,9 +154,9 @@ for value in values.iter() { // value: &int
|
|||||||
}
|
}
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
(See also [`mut_iter`](../std/vec/trait.MutableVector.html#tymethod.mut_iter)
|
(See also [`mut_iter`](std/slice/trait.MutableVector.html#tymethod.mut_iter)
|
||||||
which yields `&mut int` and
|
which yields `&mut int` and
|
||||||
[`move_iter`](../std/vec/trait.OwnedVector.html#tymethod.move_iter) which yields
|
[`move_iter`](std/slice/trait.OwnedVector.html#tymethod.move_iter) which yields
|
||||||
`int` while consuming the `values` vector.)
|
`int` while consuming the `values` vector.)
|
||||||
|
|
||||||
# Type system
|
# Type system
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ Some examples that demonstrate different aspects of the language:
|
|||||||
* The extra library's [json] module. Enums and pattern matching
|
* The extra library's [json] module. Enums and pattern matching
|
||||||
|
|
||||||
[sprocketnes]: https://github.com/pcwalton/sprocketnes
|
[sprocketnes]: https://github.com/pcwalton/sprocketnes
|
||||||
[hash]: https://github.com/mozilla/rust/blob/master/src/libstd/hash.rs
|
[hash]: https://github.com/mozilla/rust/blob/master/src/libstd/hash/mod.rs
|
||||||
[HashMap]: https://github.com/mozilla/rust/blob/master/src/libcollections/hashmap.rs
|
[HashMap]: https://github.com/mozilla/rust/blob/master/src/libcollections/hashmap.rs
|
||||||
[json]: https://github.com/mozilla/rust/blob/master/src/libserialize/json.rs
|
[json]: https://github.com/mozilla/rust/blob/master/src/libserialize/json.rs
|
||||||
|
|
||||||
@@ -149,6 +149,6 @@ example we were setting RUST_LOG to the name of the hello crate. Multiple paths
|
|||||||
can be combined to control the exact logging you want to see. For example, when
|
can be combined to control the exact logging you want to see. For example, when
|
||||||
debugging linking in the compiler you might set
|
debugging linking in the compiler you might set
|
||||||
`RUST_LOG=rustc::metadata::creader,rustc::util::filesearch,rustc::back::rpath`
|
`RUST_LOG=rustc::metadata::creader,rustc::util::filesearch,rustc::back::rpath`
|
||||||
For a full description see [the language reference][1].
|
For a full description see [the logging crate][1].
|
||||||
|
|
||||||
[1]:http://doc.rust-lang.org/doc/master/rust.html#logging-system
|
[1]:log/index.html
|
||||||
|
|||||||
@@ -499,9 +499,9 @@ shouldn't get triggered.
|
|||||||
|
|
||||||
The second of these two functions, `eh_personality`, is used by the failure
|
The second of these two functions, `eh_personality`, is used by the failure
|
||||||
mechanisms of the compiler. This is often mapped to GCC's personality function
|
mechanisms of the compiler. This is often mapped to GCC's personality function
|
||||||
(see the [libstd implementation](../std/rt/unwind/) for more information), but
|
(see the [libstd implementation](std/rt/unwind/index.html) for more
|
||||||
crates which do not trigger failure can be assured that this function is never
|
information), but crates which do not trigger failure can be assured that this
|
||||||
called.
|
function is never called.
|
||||||
|
|
||||||
## Using libcore
|
## Using libcore
|
||||||
|
|
||||||
@@ -511,7 +511,8 @@ called.
|
|||||||
With the above techniques, we've got a bare-metal executable running some Rust
|
With the above techniques, we've got a bare-metal executable running some Rust
|
||||||
code. There is a good deal of functionality provided by the standard library,
|
code. There is a good deal of functionality provided by the standard library,
|
||||||
however, that is necessary to be productive in Rust. If the standard library is
|
however, that is necessary to be productive in Rust. If the standard library is
|
||||||
not sufficient, then [libcore](../core/) is designed to be used instead.
|
not sufficient, then [libcore](../core/index.html) is designed to be used
|
||||||
|
instead.
|
||||||
|
|
||||||
The core library has very few dependencies and is much more portable than the
|
The core library has very few dependencies and is much more portable than the
|
||||||
standard library itself. Additionally, the core library has most of the
|
standard library itself. Additionally, the core library has most of the
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ pub mod arc;
|
|||||||
pub mod rc;
|
pub mod rc;
|
||||||
|
|
||||||
#[cfg(not(test))]
|
#[cfg(not(test))]
|
||||||
|
#[doc(hidden)]
|
||||||
mod std {
|
mod std {
|
||||||
pub use core::fmt;
|
pub use core::fmt;
|
||||||
pub use core::option;
|
pub use core::option;
|
||||||
|
|||||||
@@ -134,10 +134,12 @@ pub mod fmt;
|
|||||||
// crate.
|
// crate.
|
||||||
mod should_not_exist;
|
mod should_not_exist;
|
||||||
|
|
||||||
|
#[doc(hidden)]
|
||||||
mod core {
|
mod core {
|
||||||
pub use failure;
|
pub use failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[doc(hidden)]
|
||||||
mod std {
|
mod std {
|
||||||
pub use clone;
|
pub use clone;
|
||||||
pub use cmp;
|
pub use cmp;
|
||||||
|
|||||||
@@ -234,8 +234,8 @@
|
|||||||
//! similar and complementary: they are often employed to indicate a
|
//! similar and complementary: they are often employed to indicate a
|
||||||
//! lack of a return value; and they are trivially converted between
|
//! lack of a return value; and they are trivially converted between
|
||||||
//! each other, so `Result`s are often handled by first converting to
|
//! each other, so `Result`s are often handled by first converting to
|
||||||
//! `Option` with the [`ok`](enum.Result.html#method.ok) and
|
//! `Option` with the [`ok`](type.Result.html#method.ok) and
|
||||||
//! [`err`](enum.Result.html#method.ok) methods.
|
//! [`err`](type.Result.html#method.ok) methods.
|
||||||
//!
|
//!
|
||||||
//! Whereas `Option` only indicates the lack of a value, `Result` is
|
//! Whereas `Option` only indicates the lack of a value, `Result` is
|
||||||
//! specifically for error reporting, and carries with it an error
|
//! specifically for error reporting, and carries with it an error
|
||||||
|
|||||||
@@ -278,18 +278,24 @@ fn primitive_link(f: &mut fmt::Formatter,
|
|||||||
needs_termination = true;
|
needs_termination = true;
|
||||||
}
|
}
|
||||||
Some(&cnum) => {
|
Some(&cnum) => {
|
||||||
|
let path = m.paths.get(&ast::DefId {
|
||||||
|
krate: cnum,
|
||||||
|
node: ast::CRATE_NODE_ID,
|
||||||
|
});
|
||||||
let loc = match *m.extern_locations.get(&cnum) {
|
let loc = match *m.extern_locations.get(&cnum) {
|
||||||
render::Remote(ref s) => Some(s.to_string()),
|
render::Remote(ref s) => Some(s.to_string()),
|
||||||
render::Local => {
|
render::Local => {
|
||||||
let loc = current_location_key.get().unwrap();
|
let loc = current_location_key.get().unwrap();
|
||||||
Some(("../".repeat(loc.len())).to_string())
|
Some("../".repeat(loc.len()))
|
||||||
}
|
}
|
||||||
render::Unknown => None,
|
render::Unknown => None,
|
||||||
};
|
};
|
||||||
match loc {
|
match loc {
|
||||||
Some(s) => {
|
Some(root) => {
|
||||||
try!(write!(f, "<a href='{}/primitive.{}.html'>",
|
try!(write!(f, "<a href='{}{}/primitive.{}.html'>",
|
||||||
s, prim.to_url_str()));
|
root,
|
||||||
|
path.ref0().as_slice().head().unwrap(),
|
||||||
|
prim.to_url_str()));
|
||||||
needs_termination = true;
|
needs_termination = true;
|
||||||
}
|
}
|
||||||
None => {}
|
None => {}
|
||||||
|
|||||||
@@ -1380,8 +1380,13 @@ fn item_module(w: &mut fmt::Formatter, cx: &Context,
|
|||||||
if s.len() == 0 { return Ok(()); }
|
if s.len() == 0 { return Ok(()); }
|
||||||
try!(write!(f, "<code> = </code>"));
|
try!(write!(f, "<code> = </code>"));
|
||||||
if s.contains("\n") {
|
if s.contains("\n") {
|
||||||
write!(f, "<a href='{}'>[definition]</a>",
|
match item.href() {
|
||||||
item.href())
|
Some(url) => {
|
||||||
|
write!(f, "<a href='{}'>[definition]</a>",
|
||||||
|
url)
|
||||||
|
}
|
||||||
|
None => Ok(()),
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
write!(f, "<code>{}</code>", s.as_slice())
|
write!(f, "<code>{}</code>", s.as_slice())
|
||||||
}
|
}
|
||||||
@@ -1547,8 +1552,8 @@ fn item_trait(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
|
|||||||
}
|
}
|
||||||
try!(write!(w, "</ul>"));
|
try!(write!(w, "</ul>"));
|
||||||
try!(write!(w, r#"<script type="text/javascript" async
|
try!(write!(w, r#"<script type="text/javascript" async
|
||||||
src="{root_path}/implementors/{path}/\
|
src="{root_path}/implementors/{path}/{ty}.{name}.js">
|
||||||
{ty}.{name}.js"></script>"#,
|
</script>"#,
|
||||||
root_path = Vec::from_elem(cx.current.len(), "..").connect("/"),
|
root_path = Vec::from_elem(cx.current.len(), "..").connect("/"),
|
||||||
path = if ast_util::is_local(it.def_id) {
|
path = if ast_util::is_local(it.def_id) {
|
||||||
cx.current.connect("/")
|
cx.current.connect("/")
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ pub fn local_id() -> uint {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[doc(hidden)]
|
||||||
pub trait HomingIO {
|
pub trait HomingIO {
|
||||||
fn home<'r>(&'r mut self) -> &'r mut HomeHandle;
|
fn home<'r>(&'r mut self) -> &'r mut HomeHandle;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user