Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upAllow pub access to underlying 'Read' member of Take or Chain #29067
Comments
This comment has been minimized.
This comment has been minimized.
|
That seems pretty reasonable. We already have those kinds of accessors on other adaptors like |
sfackler
added
T-libs
A-io
labels
Oct 15, 2015
brson
added
the
I-nominated
label
Mar 23, 2017
This comment has been minimized.
This comment has been minimized.
|
Does libs team care about this for completeness? |
This comment has been minimized.
This comment has been minimized.
|
Yes seems fine to implement to me |
aturon
added
E-help-wanted
and removed
I-nominated
labels
Mar 28, 2017
This comment has been minimized.
This comment has been minimized.
|
Libs team is |
This comment has been minimized.
This comment has been minimized.
|
I've started working on this and will have an implementation soon! |
SergioBenitez
added a commit
to SergioBenitez/rust
that referenced
this issue
Apr 22, 2017
SergioBenitez
referenced this issue
Apr 22, 2017
Merged
Add internal accessor methods to io::{Chain, Take}. #41463
SergioBenitez
added a commit
to SergioBenitez/rust
that referenced
this issue
Apr 22, 2017
SergioBenitez
added a commit
to SergioBenitez/rust
that referenced
this issue
Apr 22, 2017
SergioBenitez
added a commit
to SergioBenitez/rust
that referenced
this issue
Apr 23, 2017
SergioBenitez
referenced this issue
Apr 24, 2017
Closed
Tracking issue for 'more_io_inner_methods' #41519
SergioBenitez
added a commit
to SergioBenitez/rust
that referenced
this issue
Apr 24, 2017
frewsxcv
added a commit
to frewsxcv/rust
that referenced
this issue
Apr 25, 2017
arielb1
pushed a commit
to arielb1/rust
that referenced
this issue
Apr 25, 2017
arielb1
pushed a commit
to arielb1/rust
that referenced
this issue
Apr 25, 2017
frewsxcv
added a commit
to frewsxcv/rust
that referenced
this issue
Apr 26, 2017
bors
closed this
in
#41463
Apr 26, 2017
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
peter-bertok commentedOct 15, 2015
I asked this as a question on StackOverflow, and it was suggested that I raise an issue.
I'm writing a Rust implementation of the Google Brotli decompression algorithm, which uses a fixed number of "implicit zeroes" at the end of the stream to enable certain optimisations.
The Google C implementation does this using a spaghetti code of various counters, but I'd like to use the adaptors in the Rust std::io library instead. Something like:
where 'R' is the underlying
Readthat the bit reader struct is wrapping. However, there are a number of cases where the decompression algorithm checks to see if it has "overrun" the stream, and it does this by checking the number of implicit zero bytes that have been read. This appears to be impossible in safe Rust, as there is no way to obtain a reference to the underlying components ofChain, unless I'm missing something.When
Chainis constructed, it takes ownership of (moves) the twoReadstructs, which then are hidden in private members.Is there any way to construct the
Take<Repeat>part such that I can continue to access thelimit()fn ofTakeeven after theChainadaptor takes ownership?If not, then there ought to be either public members or functions that allow access to the base Read members of all such adaptors, to allow this type of code.