@@ -186,23 +186,29 @@ while still providing feedback about errors. The basic strategy:
186
186
so that nullable values do not have to be 'unwrapped' before use.
187
187
188
188
These features combine in the API to allow for expressions like
189
- `File::new("diary.txt").write_line("met a girl")` without having to
190
- worry about whether "diary.txt" exists or whether the write
191
- succeeds. As written, if either `new` or `write_line` encounters
192
- an error the task will fail.
193
-
194
- If you wanted to handle the error though you might write
195
-
196
- let mut error = None;
197
- do io_error::cond(|e: IoError| {
198
- error = Some(e);
199
- }).in {
200
- File::new("diary.txt").write_line("met a girl");
201
- }
202
-
203
- if error.is_some() {
204
- println("failed to write my diary");
205
- }
189
+ `File::create(&Path::new("diary.txt")).write(bytes!("Met a girl.\n"))`
190
+ without having to worry about whether "diary.txt" exists or whether
191
+ the write succeeds. As written, if either `new` or `write_line`
192
+ encounters an error the task will fail.
193
+
194
+ If you wanted to handle the error though you might write:
195
+
196
+ ```rust
197
+ use std::io::File;
198
+ use std::io::{IoError, io_error};
199
+
200
+ let mut error = None;
201
+ io_error::cond.trap(|e: IoError| {
202
+ error = Some(e);
203
+ }).inside(|| {
204
+ File::create(&Path::new("diary.txt")).write(bytes!("Met a girl.\n"));
205
+ });
206
+
207
+ if error.is_some() {
208
+ println("failed to write my diary");
209
+ }
210
+ # ::std::io::fs::unlink(&Path::new("diary.txt"));
211
+ ```
206
212
207
213
XXX: Need better condition handling syntax
208
214
@@ -498,10 +504,16 @@ pub trait Reader {
498
504
///
499
505
/// # Example
500
506
///
501
- /// let mut reader = BufferedReader::new(File::open(&Path::new("foo.txt")));
502
- /// for line in reader.lines() {
503
- /// println(line);
504
- /// }
507
+ /// ```rust
508
+ /// use std::io;
509
+ /// # let _g = ::std::io::ignore_io_error();
510
+ /// let mut reader = io::stdin();
511
+ ///
512
+ /// let mut bytes = [0, .. 10];
513
+ /// reader.read(bytes);
514
+ ///
515
+ /// if reader.eof() { println("stdin() had at most 10 bytes of data."); }
516
+ /// ```
505
517
///
506
518
/// # Failure
507
519
///
@@ -1057,6 +1069,18 @@ pub trait Buffer: Reader {
1057
1069
/// encoded unicode codepoints. If a newline is encountered, then the
1058
1070
/// newline is contained in the returned string.
1059
1071
///
1072
+ /// # Example
1073
+ ///
1074
+ /// ```rust
1075
+ /// use std::io::buffered::BufferedReader;
1076
+ /// use std::io;
1077
+ /// # let _g = ::std::io::ignore_io_error();
1078
+ ///
1079
+ /// let mut reader = BufferedReader::new(io::stdin());
1080
+ ///
1081
+ /// let input = reader.read_line().unwrap_or(~"nothing");
1082
+ /// ```
1083
+ ///
1060
1084
/// # Failure
1061
1085
///
1062
1086
/// This function will raise on the `io_error` condition (except for
0 commit comments