Commit Graph

193 Commits

Author SHA1 Message Date
Trevor Spiteri
9d6bd0536a docs: do not call integer overflows as underflows 2017-12-21 02:39:01 +01:00
Jonathan Behrens
df4b78160c
Implement is_empty() for BufReader 2017-10-18 14:27:33 -04:00
Zack M. Davis
1b6c9605e4 use field init shorthand EVERYWHERE
Like #43008 (f668999), but _much more aggressive_.
2017-08-15 15:29:17 -07:00
Evan Cameron
72e8009185 Remove mut where possible 2017-07-20 13:59:44 -04:00
John Gallagher
c6b280e039 Add warning to BufWriter documentation 2017-07-09 17:59:59 -04:00
Steven Fackler
ecbb896b9e Add Read::initializer.
This is an API that allows types to indicate that they can be passed
buffers of uninitialized memory which can improve performance.
2017-06-20 20:26:22 -07:00
Oliver Middleton
b4be475836 Fix Markdown issues in the docs
* Since the switch to pulldown-cmark reference links need a blank line
before the URLs.
* Reference link references are not case sensitive.
* Doc comments need to be indented uniformly otherwise rustdoc gets
confused.
2017-04-06 12:57:40 +01:00
Utkarsh Kukreti
9d912b683a libstd: replace all try! with ? in documentation examples
See #38644.
2017-01-22 21:07:38 +05:30
Alex Crichton
ecc60106c9 std: Fix partial writes in LineWriter
Previously the `LineWriter` could successfully write some bytes but then fail to
report that it has done so. Additionally, an erroneous flush after a successful
write was permanently ignored. This commit fixes these two issues by (a)
maintaining a `need_flush` flag to indicate whether a flush should be the first
operation in `LineWriter::write` and (b) avoiding returning an error once some
bytes have been successfully written.

Closes #37807
2016-11-28 15:05:04 -08:00
Arthur Silva
dcd80b80ae Remove one bounds check from BufReader
Otherwise the optimizer can't be sure that pos <= cap. Added a paranoid debug_assert to ensure correctness instead.
2016-11-10 22:26:50 +01:00
Jonathan Turner
67aaddddd6 Rollup merge of #37115 - GuillaumeGomez:buf_reader_urls, r=kmcallister
add missing urls for BufWriter and BufReader

r? @steveklabnik
2016-10-14 12:07:08 -07:00
Guillaume Gomez
96a8bae3da add missing urls for BufWriter and BufReader 2016-10-12 18:27:04 +02:00
Nick Cameron
14c62f91b7 Deprecate Reflect
[tracking issue](https://github.com/rust-lang/rust/issues/27749)
2016-10-12 08:40:22 +13:00
Razican
8d06332a27 Fixed small typo in BufRead comments
`BufRead` comments, in the `Seek` trait	implementation,	was talking
about allocating 8 *ebibytes*. It was a	typo, the correct unit is
*exbibytes*, since *ebibytes* don't even exist.	The calculation	is
correct, though.
2016-10-05 13:18:45 +02:00
Brian Anderson
9c4a01ee9e Ignore lots and lots of std tests on emscripten 2016-09-30 14:02:48 -07:00
Christopher Serr
e107c8b849 Fix outdated Doc Comment on BufReader::seek
A long time ago non-panicking `unwrap` methods were renamed to `into_inner` in this Pull Request: https://github.com/rust-lang/rust/pull/19149

Looks like this doc comment was not updated however.
2016-09-21 21:11:53 +02:00
Richard Janis Goldschmidt
c8b656bea5 Remove unnecessary cmp::min from BufWriter::write
The first branch of the if statement already checks if `buf.len() >= self.buf.capacity()`, which makes the `cmp::min(buf.len(), self.buf.capacity())` redundant: the result will always be `buf.len()`. Therefore, we can pass the `buf` slice directly into `Write::write`.
2016-09-11 16:48:04 +02:00
Jeffrey Seyfried
9a2c8783d9 Use #[prelude_import] in libstd. 2016-08-24 22:12:48 +00:00
Corey Farwell
62b19c627e Utilize Result::unwrap_err in more places. 2016-05-09 08:40:57 -04:00
Jorge Aparicio
0f02309e4b try! -> ?
Automated conversion using the untry tool [1] and the following command:

```
$ find -name '*.rs' -type f | xargs untry
```

at the root of the Rust repo.

[1]: https://github.com/japaric/untry
2016-03-22 22:01:37 -05:00
Steven Allen
c516335815 Add test case for #32085 2016-03-07 18:00:22 -05:00
Steven Allen
6ea8222913 Never return an error after a partial write
If LineWriter fails to flush, return the number of bytes written instead
of an error.

Fixes #32085
2016-03-07 16:35:37 -05:00
Alex Crichton
cb343c33ac Fix warnings during tests
The deny(warnings) attribute is now enabled for tests so we need to weed out
these warnings as well.
2016-01-26 09:29:28 -08:00
bors
00ee90f0f0 Auto merge of #31070 - sfackler:bufreader-box-slice, r=alexcrichton
Saves a word, and also prevents the impl from accidentally changing the
buffer length.

r? @alexcrichton
2016-01-22 06:04:50 +00:00
Steven Fackler
b740c557e2 Use a Box<[u8]> in BufReader
Saves a word, and also prevents the impl from accidentally changing the
buffer length.
2016-01-20 22:40:25 -08:00
Steven Fackler
334bee3489 Don't flush in BufWriter destructor after a panic in write
We don't want to write the same data twice.

Closes #30888
2016-01-20 22:30:46 -08:00
Andrea Canciani
fb82398b2a Remove dead InternalBufWriter implementation
In 8d90d3f368 `BufStream`, the only
consumer of `InternalBufWriter`, was removed. As implied by the name,
this type is private, hence it is currently dead code.
2016-01-12 18:10:43 +01:00
Florian Hahn
e27cbeff37 Fix warnings when compiling stdlib with --test 2015-12-29 16:07:01 +01:00
Florian Hahn
de3e843d24 Use memchr in libstd where possible, closes #30076 2015-12-18 13:32:14 +01:00
Vadim Petrochenkov
7e2ffc7090 Add missing annotations and some tests 2015-11-18 01:24:21 +03:00
Cristi Cobzarenco
4b308b44e1 typos: fix a grabbag of typos all over the place 2015-10-08 19:49:31 +01:00
Alex Crichton
8d90d3f368 Remove all unstable deprecated functionality
This commit removes all unstable and deprecated functions in the standard
library. A release was recently cut (1.3) which makes this a good time for some
spring cleaning of the deprecated functions.
2015-08-12 14:55:17 -07:00
Steve Klabnik
1406c196fd Rollup merge of #27341 - steveklabnik:remove_warning, r=alexcrichton
This isn't a standard header, and the other docs don't use it, so let's remove it.
2015-07-29 10:30:35 -04:00
Steve Klabnik
ad44a7fbc0 Remove warning header for consistency
This isn't a standard header, and the other docs don't use it, so let's remove it.
2015-07-27 22:20:37 -04:00
Alex Crichton
b3aa1a6d4a std: Deprecate a number of unstable features
Many of these have long since reached their stage of being obsolete, so this
commit starts the removal process for all of them. The unstable features that
were deprecated are:

* cmp_partial
* fs_time
* hash_default
* int_slice
* iter_min_max
* iter_reset_fuse
* iter_to_vec
* map_in_place
* move_from
* owned_ascii_ext
* page_size
* read_and_zero
* scan_state
* slice_chars
* slice_position_elem
* subslice_offset
2015-07-27 16:38:25 -07:00
Steve Klabnik
a39a36aec9 Rollup merge of #27170 - steveklabnik:doc_std_io_intoinnererror, r=alexcrichton
Mostly adding examples.

r? @alexcrichton
2015-07-22 12:56:51 -04:00
Steve Klabnik
6397ecb3ca Rollup merge of #27166 - steveklabnik:doc_std_io_linewriter, r=alexcrichton
Beef up the struct docs, add examples for the methods.

r? @alexcrichton
2015-07-22 12:56:51 -04:00
Steve Klabnik
e31ad959cc Improve documentation for std::io::LineWriter
Beef up the struct docs, add examples for the methods.
2015-07-22 10:19:36 -04:00
Steve Klabnik
e22c6f7caa Improve documentation for std::io::BufWriter
Mostly through adding examples.
2015-07-22 01:21:17 -04:00
Steve Klabnik
d2aee954fe Expand documentation for IntoInnerError
Mostly adding examples.
2015-07-21 13:37:09 -04:00
Ulrik Sverdrup
7b51c1c573 Use Vec::drain in BufWriter
I happened past a comment that asked for functionality that we now have.
2015-07-14 11:43:24 +02:00
Steve Klabnik
18201d7db1 More docs for std::io::BufReader 2015-07-10 16:47:48 -04:00
bors
020d201a66 Auto merge of #26849 - bluss:read-to-end-memset, r=alexcrichton
Improve zerofill in Vec::resize and Read::read_to_end

We needed a more efficient way to zerofill the vector in read_to_end.
This to reduce the memory intialization overhead to a minimum.

Use the implementation of `std::vec::from_elem` (used for the vec![]
macro) for Vec::resize as well. For simple element types like u8, this
compiles to memset, so it makes Vec::resize much more efficient.
2015-07-08 21:12:54 +00:00
Ulrik Sverdrup
a5cc17adaa io: Simplify BufReader::with_capacity
Use the vec![] macro directly to create a sized, zeroed vector.

This should result in a big speedup when creating BufReader, because
vec![0; cap] compiles to a memset call, while the previous extend code
currently did not.
2015-07-08 19:40:40 +02:00
Georg Brandl
df73abedd5 std: small doc fixes for BufReader and BufWriter
* fix probable copy-paste error in BufWriter.get_mut()
* more consistent punctuation
2015-07-05 11:59:33 +02:00
Alex Crichton
b4a2823cd6 More test fixes and fallout of stability changes 2015-06-17 09:07:17 -07:00
Alex Crichton
0d818b4ee4 std: Deprecate the io::BufStream type
Questions about the utility of this type has caused it to move to crates.io in
the `bufstream` crate, so this type can be deprecated.
2015-06-17 09:07:16 -07:00
Matt Brubeck
d776191d4a Add example code and cross-link to BufReader docs 2015-05-19 10:41:19 -07:00
bors
eae692e375 Auto merge of #25009 - alexcrichton:less-buffered-stream, r=aturon
As pointed out in #17136 the semantics of a `BufStream` aren't always what one
expects, and it looks like other [languages like C#][c-sharp] implement a
buffered stream with only one underlying buffer. For now this commit
destabilizes the primitive in the `std::io` module to give us some more time in
figuring out what to do with it.

[c-sharp]: https://msdn.microsoft.com/en-us/library/system.io.bufferedstream%28v=vs.110%29.aspx

[breaking-change]
2015-05-05 18:18:27 +00:00
bors
f6574c5b04 Auto merge of #25006 - alexcrichton:unstable-indexing, r=aturon
These implementations were intended to be unstable, but currently the stability
attributes cannot handle a stable trait with an unstable `impl` block. This
commit also audits the rest of the standard library for explicitly-`#[unstable]`
impl blocks. No others were removed but some annotations were changed to
`#[stable]` as they're defacto stable anyway.

One particularly interesting `impl` marked `#[stable]` as part of this commit
is the `Add<&[T]>` impl for `Vec<T>`, which uses `push_all` and implicitly
clones all elements of the vector provided.

Closes #24791

[breaking-change]
2015-05-01 22:54:09 +00:00