doc: Fix a number of broken links

cc #14515
This commit is contained in:
Alex Crichton
2014-05-29 09:58:09 -07:00
parent 8c669d7f74
commit c5830a954e
9 changed files with 52 additions and 35 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -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 => {}

View File

@@ -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("/")

View File

@@ -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;