Skip to content

Commit cbd9e90

Browse files
committed
Add readavailable(::FileBuffer)
This adds a method for `FileBuffer`s to `readavailable` that precisely matches the behavior for `IOBuffer`s. This definition permits downstream niceties such as `CSV.read(::S3Path, ...)`.
1 parent 534b301 commit cbd9e90

2 files changed

Lines changed: 3 additions & 0 deletions

File tree

src/buffer.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ end
3535
Base.isopen(buffer::FileBuffer) = isopen(buffer.io)
3636
Base.isreadable(buffer::FileBuffer) = buffer.read
3737
Base.iswritable(buffer::FileBuffer) = buffer.write
38+
Base.readavailable(buffer::FileBuffer) = read(buffer)
3839
Base.seek(buffer::FileBuffer, n::Integer) = (_read(buffer); seek(buffer.io, n))
3940
Base.skip(buffer::FileBuffer, n::Integer) = (_read(buffer); skip(buffer.io, n))
4041
Base.seekstart(buffer::FileBuffer) = seekstart(buffer.io)

test/buffer.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ using FilePathsBase: FileBuffer
3333
close(io)
3434
end
3535

36+
@test readavailable(FileBuffer(p)) == readavailable(IOBuffer(read(p)))
37+
3638
# issue #126: data on first read
3739
mktemp(SystemPath) do p, _
3840
write(p, "testing")

0 commit comments

Comments
 (0)