• Brad Fitzpatrick's avatar
    bytes, strings: add Reader.Size methods · c264c873
    Brad Fitzpatrick authored
    As noted on recently on golang-nuts, there's currently no way to know
    the total size of a strings.Reader or bytes.Reader when using ReadAt
    on them. Most callers resort to wrapping it in an io.SectionReader to
    retain that information.
    
    The SizeReaderAt abstraction (an io.ReaderAt with a Size() int64
    method) has proven useful as a way of expressing a concurrency-safe
    read-only number of bytes.
    
    As one example, see http://talks.golang.org/2013/oscon-dl.slide#49 and
    the rest of that presentation for its use in dl.google.com.
    
    SizeReaderAt is also used in the open source google-api-go-client, and
    within Google's internal codebase, where it exists in a public package
    created in 2013 with the package comment: "These may migrate to the
    standard library after we have enough experience with their feel."
    
    I'm still as happy with the SizeReaderAt abstraction and its
    composabilty as I was in 2013, so I'd like to make these two Readers
    also be SizeReaderAts.
    
    Fixes #9667
    
    Change-Id: Ie6f145ada419dd116280472d8c029f046d5edf70
    Reviewed-on: https://go-review.googlesource.com/3199Reviewed-by: 's avatarAndrew Gerrand <adg@golang.org>
    Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    Reviewed-by: 's avatarRob Pike <r@golang.org>
    c264c873
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...