doc: Remove all uses of ~str from the documentation.

This commit is contained in:
Patrick Walton 2014-05-14 22:09:21 -07:00
parent 1fb08f11b7
commit b84c0dc2d6
9 changed files with 52 additions and 51 deletions

View File

@ -8,7 +8,7 @@ Use [`ToStr`](http://static.rust-lang.org/doc/master/std/to_str/trait.ToStr.html
~~~
let x: int = 42;
let y: ~str = x.to_str();
let y: StrBuf = x.to_str().to_strbuf();
~~~
**String to int**
@ -22,14 +22,14 @@ let y: int = x.unwrap();
**Int to string, in non-base-10**
Use the `format!` syntax extension.
Use the `format_strbuf!` syntax extension.
~~~
let x: int = 42;
let y: ~str = format!("{:t}", x); // binary
let y: ~str = format!("{:o}", x); // octal
let y: ~str = format!("{:x}", x); // lowercase hexadecimal
let y: ~str = format!("{:X}", x); // uppercase hexadecimal
let y: StrBuf = format_strbuf!("{:t}", x); // binary
let y: StrBuf = format_strbuf!("{:o}", x); // octal
let y: StrBuf = format_strbuf!("{:x}", x); // lowercase hexadecimal
let y: StrBuf = format_strbuf!("{:X}", x); // uppercase hexadecimal
~~~
**String to int, in non-base-10**
@ -55,13 +55,14 @@ let x: Option<&str> = str::from_utf8(bytes);
let y: &str = x.unwrap();
~~~
To return an Owned String (~str) use the str helper function [`from_utf8_owned`](http://static.rust-lang.org/doc/master/std/str/fn.from_utf8_owned.html).
To return an Owned String (StrBuf) use the str helper function [`from_utf8_owned`](http://static.rust-lang.org/doc/master/std/str/fn.from_utf8_owned.html).
~~~
use std::str;
let x: Result<~str,~[u8]> = str::from_utf8_owned(~[104u8,105u8]);
let y: ~str = x.unwrap();
let x: Result<StrBuf,~[u8]> =
str::from_utf8_owned(~[104u8,105u8]).map(|x| x.to_strbuf());
let y: StrBuf = x.unwrap();
~~~
To return a [`MaybeOwned`](http://static.rust-lang.org/doc/master/std/str/enum.MaybeOwned.html) use the str helper function [`from_utf8_lossy`](http://static.rust-lang.org/doc/master/std/str/fn.from_utf8_owned.html). This function also replaces non-valid utf-8 sequences with U+FFFD replacement character.
@ -181,7 +182,7 @@ enum Closed {}
Phantom types are useful for enforcing state at compile time. For example:
~~~
struct Door<State>(~str);
struct Door<State>(StrBuf);
struct Open;
struct Closed;
@ -194,13 +195,13 @@ fn open(Door(name): Door<Closed>) -> Door<Open> {
Door::<Open>(name)
}
let _ = close(Door::<Open>("front".to_owned()));
let _ = close(Door::<Open>("front".to_strbuf()));
~~~
Attempting to close a closed door is prevented statically:
~~~ {.ignore}
let _ = close(Door::<Closed>("front".to_owned())); // error: mismatched types: expected `main::Door<main::Open>` but found `main::Door<main::Closed>`
let _ = close(Door::<Closed>("front".to_strbuf())); // error: mismatched types: expected `main::Door<main::Open>` but found `main::Door<main::Closed>`
~~~
# FFI (Foreign Function Interface)

View File

@ -85,7 +85,7 @@ To take as an argument a fragment of Rust code, write `$` followed by a name
`foo`.)
* `expr` (an expression. Examples: `2 + 2`; `if true then { 1 } else { 2 }`;
`f(42)`.)
* `ty` (a type. Examples: `int`, `~[(char, ~str)]`, `&T`.)
* `ty` (a type. Examples: `int`, `~[(char, StrBuf)]`, `&T`.)
* `pat` (a pattern, usually appearing in a `match` or on the left-hand side of
a declaration. Examples: `Some(t)`; `(17, 'a')`; `_`.)
* `block` (a sequence of actions. Example: `{ log(error, "hi"); return 12; }`)

View File

@ -463,11 +463,11 @@ Here is the function that implements the child task:
~~~
extern crate sync;
# fn main() {
fn stringifier(channel: &sync::DuplexStream<~str, uint>) {
fn stringifier(channel: &sync::DuplexStream<StrBuf, uint>) {
let mut value: uint;
loop {
value = channel.recv();
channel.send(value.to_str());
channel.send(value.to_str().to_strbuf());
if value == 0 { break; }
}
}
@ -488,11 +488,11 @@ Here is the code for the parent task:
extern crate sync;
# use std::task::spawn;
# use sync::DuplexStream;
# fn stringifier(channel: &sync::DuplexStream<~str, uint>) {
# fn stringifier(channel: &sync::DuplexStream<StrBuf, uint>) {
# let mut value: uint;
# loop {
# value = channel.recv();
# channel.send(value.to_str());
# channel.send(value.to_str().to_strbuf());
# if value == 0u { break; }
# }
# }
@ -505,13 +505,13 @@ spawn(proc() {
});
from_child.send(22);
assert!(from_child.recv() == "22".to_owned());
assert!(from_child.recv().as_slice() == "22");
from_child.send(23);
from_child.send(0);
assert!(from_child.recv() == "23".to_owned());
assert!(from_child.recv() == "0".to_owned());
assert!(from_child.recv().as_slice() == "23");
assert!(from_child.recv().as_slice() == "0");
# }
~~~

View File

@ -34,7 +34,7 @@ msgstr ""
#, fuzzy
#| msgid ""
#| "~~~~ let x: f64 = 4.0; let y: uint = x as uint; assert!(y == 4u); ~~~~"
msgid "~~~ let x: int = 42; let y: ~str = x.to_str(); ~~~"
msgid "~~~ let x: int = 42; let y: StrBuf = x.to_str(); ~~~"
msgstr ""
"~~~~\n"
"let x: f64 = 4.0;\n"
@ -96,7 +96,7 @@ msgstr ""
#, fuzzy
#| msgid ""
#| "~~~~ let x: f64 = 4.0; let y: uint = x as uint; assert!(y == 4u); ~~~~"
msgid "let x: int = 42; let y: ~str = x.to_str_radix(16); ~~~"
msgid "let x: int = 42; let y: StrBuf = x.to_str_radix(16); ~~~"
msgstr ""
"~~~~\n"
"let x: f64 = 4.0;\n"

View File

@ -1641,7 +1641,7 @@ msgstr "## 最小限の例"
msgid ""
"~~~~\n"
"trait Printable {\n"
" fn to_string(&self) -> ~str;\n"
" fn to_string(&self) -> StrBuf;\n"
"}\n"
msgstr ""
"~~~~ {.ignore}\n"
@ -1656,7 +1656,7 @@ msgstr ""
#| msgid "~~~~ {.ignore} // main.rs extern crate world; fn main() { println(~\"hello \" + world::explore()); } ~~~~"
msgid ""
"impl Printable for int {\n"
" fn to_string(&self) -> ~str { self.to_str() }\n"
" fn to_string(&self) -> StrBuf { self.to_str() }\n"
"}\n"
msgstr ""
"~~~~ {.ignore}\n"
@ -1702,7 +1702,7 @@ msgstr "# クロージャ"
msgid ""
"~~~~\n"
"trait Printable {\n"
" fn make_string(&self) -> ~str;\n"
" fn make_string(&self) -> StrBuf;\n"
"}\n"
msgstr ""
"~~~~ {.ignore}\n"
@ -1716,8 +1716,8 @@ msgstr ""
#, fuzzy, no-wrap
#| msgid "~~~~ {.ignore} // main.rs extern crate world; fn main() { println(~\"hello \" + world::explore()); } ~~~~"
msgid ""
"impl Printable for ~str {\n"
" fn make_string(&self) -> ~str {\n"
"impl Printable for StrBuf {\n"
" fn make_string(&self) -> StrBuf {\n"
" (*self).clone()\n"
" }\n"
"}\n"

View File

@ -3755,15 +3755,15 @@ msgstr ""
#| msgid ""
#| "Traits may be implemented for specific types with [impls]. An impl that "
#| "implements a trait includes the name of the trait at the start of the "
#| "definition, as in the following impls of `Printable` for `int` and `~str`."
#| "definition, as in the following impls of `Printable` for `int` and `StrBuf`."
msgid ""
"Traits may be implemented for specific types with [impls]. An impl for a "
"particular trait gives an implementation of the methods that trait "
"provides. For instance, the following impls of `Printable` for `int` and "
"`~str` give implementations of the `print` method."
"`StrBuf` give implementations of the `print` method."
msgstr ""
"[impl][impls] により特定の型にトレイトを実装することができます。トレイトを実"
"装する impl は、以下の `Printable` の `int` と `~str` に対する実装のように、"
"装する impl は、以下の `Printable` の `int` と `StrBuf` に対する実装のように、"
"定義の先頭にトレイトの名前を含みます。"
#. type: Plain text
@ -3776,7 +3776,7 @@ msgstr "[impls]: #メソッド"
#, fuzzy, no-wrap
#| msgid "~~~~ {.ignore} // main.rs extern crate world; fn main() { println(~\"hello \" + world::explore()); } ~~~~"
msgid ""
"impl Printable for ~str {\n"
"impl Printable for StrBuf {\n"
" fn print(&self) { println!(\"{}\", *self) }\n"
"}\n"
msgstr ""

View File

@ -473,7 +473,7 @@ Two examples of paths with type arguments:
# struct HashMap<K, V>;
# fn f() {
# fn id<T>(t: T) -> T { t }
type T = HashMap<int,~str>; // Type arguments used in a type expression
type T = HashMap<int,StrBuf>; // Type arguments used in a type expression
let x = id::<int>(10); // Type arguments used in a call expression
# }
~~~~
@ -1259,12 +1259,12 @@ Enumeration constructors can have either named or unnamed fields:
~~~~
enum Animal {
Dog (~str, f64),
Cat { name: ~str, weight: f64 }
Dog (StrBuf, f64),
Cat { name: StrBuf, weight: f64 }
}
let mut a: Animal = Dog("Cocoa".to_owned(), 37.2);
a = Cat{ name: "Spotty".to_owned(), weight: 2.7 };
let mut a: Animal = Dog("Cocoa".to_strbuf(), 37.2);
a = Cat { name: "Spotty".to_strbuf(), weight: 2.7 };
~~~~
In this example, `Cat` is a _struct-like enum variant_,
@ -2081,7 +2081,7 @@ These are functions:
* `str_eq`
: Compare two strings (`&str`) for equality.
* `uniq_str_eq`
: Compare two owned strings (`~str`) for equality.
: Compare two owned strings (`StrBuf`) for equality.
* `strdup_uniq`
: Return a new unique string
containing a copy of the contents of a unique string.
@ -3309,7 +3309,7 @@ A value of type `str` is a Unicode string,
represented as a vector of 8-bit unsigned bytes holding a sequence of UTF-8 codepoints.
Since `str` is of unknown size, it is not a _first class_ type,
but can only be instantiated through a pointer type,
such as `&str` or `~str`.
such as `&str` or `StrBuf`.
### Tuple types
@ -3573,11 +3573,11 @@ An example of an object type:
~~~~
trait Printable {
fn to_string(&self) -> ~str;
fn to_string(&self) -> StrBuf;
}
impl Printable for int {
fn to_string(&self) -> ~str { self.to_str() }
fn to_string(&self) -> StrBuf { self.to_str().to_strbuf() }
}
fn print(a: Box<Printable>) {
@ -3618,17 +3618,17 @@ example, in:
~~~~
trait Printable {
fn make_string(&self) -> ~str;
fn make_string(&self) -> StrBuf;
}
impl Printable for ~str {
fn make_string(&self) -> ~str {
impl Printable for StrBuf {
fn make_string(&self) -> StrBuf {
(*self).clone()
}
}
~~~~
`self` refers to the value of type `~str` that is the receiver for a
`self` refers to the value of type `StrBuf` that is the receiver for a
call to the method `make_string`.
## Type kinds

View File

@ -26,7 +26,7 @@ comments":
pub struct Widget {
/// All widgets have a purpose (this is a doc comment, and will show up
/// the field's documentation).
purpose: ~str,
purpose: StrBuf,
/// Humans are not allowed to understand some widgets
understandable: bool
}

View File

@ -2213,7 +2213,7 @@ don't provide any methods.
Traits may be implemented for specific types with [impls]. An impl for
a particular trait gives an implementation of the methods that
trait provides. For instance, the following impls of
`Printable` for `int` and `~str` give implementations of the `print`
`Printable` for `int` and `StrBuf` give implementations of the `print`
method.
[impls]: #methods
@ -2224,12 +2224,12 @@ impl Printable for int {
fn print(&self) { println!("{:?}", *self) }
}
impl Printable for ~str {
impl Printable for StrBuf {
fn print(&self) { println!("{}", *self) }
}
# 1.print();
# ("foo".to_owned()).print();
# ("foo".to_strbuf()).print();
~~~~
Methods defined in an impl for a trait may be called just like
@ -2270,7 +2270,7 @@ trait Printable {
impl Printable for int {}
impl Printable for ~str {
impl Printable for StrBuf {
fn print(&self) { println!("{}", *self) }
}
@ -2279,7 +2279,7 @@ impl Printable for bool {}
impl Printable for f32 {}
# 1.print();
# ("foo".to_owned()).print();
# ("foo".to_strbuf()).print();
# true.print();
# 3.14159.print();
~~~~
@ -2291,7 +2291,7 @@ provided in the trait definition. Depending on the trait, default
methods can save a great deal of boilerplate code from having to be
written in impls. Of course, individual impls can still override the
default method for `print`, as is being done above in the impl for
`~str`.
`StrBuf`.
## Type-parameterized traits