File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -90,6 +90,7 @@ function TranscodingStreams.test_chunked_read(Encoder, Decoder)
9090 stream = TranscodingStream (Decoder (), buffer, stop_on_end= true )
9191 ok &= hash (read (stream)) == hash (chunk)
9292 ok &= eof (stream)
93+ ok &= isreadable (stream)
9394 close (stream)
9495 end
9596 Test. @test ok
Original file line number Diff line number Diff line change @@ -103,7 +103,7 @@ julia> using TranscodingStreams
103103
104104julia> file = open(joinpath(dirname(dirname(pathof(TranscodingStreams))), "README.md"));
105105
106- julia> stream = NoopStream( file);
106+ julia> stream = TranscodingStream(Noop(), file);
107107
108108julia> readline(file)
109109"TranscodingStreams.jl"
@@ -182,6 +182,16 @@ function Base.isopen(stream::TranscodingStream)
182182 return stream. state. mode != :close && stream. state. mode != :panic
183183end
184184
185+ function Base. isreadable (stream:: TranscodingStream ):: Bool
186+ mode = stream. state. mode
187+ (mode === :idle || mode === :read || mode === :stop ) && isreadable (stream. stream)
188+ end
189+
190+ function Base. iswritable (stream:: TranscodingStream ):: Bool
191+ mode = stream. state. mode
192+ (mode === :idle || mode === :write ) && iswritable (stream. stream)
193+ end
194+
185195function Base. close (stream:: TranscodingStream )
186196 mode = stream. state. mode
187197 if mode != :panic
Original file line number Diff line number Diff line change 240240 TranscodingStreams. test_roundtrip_write (NoopStream, NoopStream)
241241 TranscodingStreams. test_roundtrip_lines (NoopStream, NoopStream)
242242
243- # switch write => read
244- stream = NoopStream (IOBuffer (b " foobar" , read= true , write= true ))
245- @test_throws ArgumentError begin
246- write (stream, b " xyz" )
247- read (stream, 3 )
243+ @testset " switch write => read" begin
244+ stream = NoopStream (IOBuffer (collect (b " foobar" ), read= true , write= true ))
245+ @test isreadable (stream)
246+ @test iswritable (stream)
247+ @test_throws ArgumentError begin
248+ write (stream, b " xyz" )
249+ read (stream, 3 )
250+ end
251+ @test ! isreadable (stream)
252+ @test iswritable (stream)
248253 end
249254
250- # switch read => write
251- stream = NoopStream (IOBuffer (b " foobar" , read= true , write= true ))
252- @test_throws ArgumentError begin
253- read (stream, 3 )
254- write (stream, b " xyz" )
255+ @testset " switch read => write" begin
256+ stream = NoopStream (IOBuffer (collect (b " foobar" ), read= true , write= true ))
257+ @test_throws ArgumentError begin
258+ read (stream, 3 )
259+ write (stream, b " xyz" )
260+ end
261+ @test isreadable (stream)
262+ @test ! iswritable (stream)
255263 end
256264
257265 stream = NoopStream (IOBuffer (" " ))
You can’t perform that action at this time.
0 commit comments