diff --git a/src/transcode.jl b/src/transcode.jl index b1b03876..1568e0b7 100644 --- a/src/transcode.jl +++ b/src/transcode.jl @@ -40,6 +40,12 @@ function Base.transcode(::Type{C}, args...) where {C<:Codec} end end +# Disambiguate `Base.transcode(::Type{C}, args...)` above from +# `Base.transcode(T, ::String)` in Julia `Base` +function Base.transcode(codec::Type{C}, src::String) where {C<:Codec} + return invoke(transcode, Tuple{Any, String}, codec, src) +end + _default_output_buffer(codec, input) = Buffer( initial_output_size( codec, diff --git a/test/codecnoop.jl b/test/codecnoop.jl index 22e6e93c..605dd15a 100644 --- a/test/codecnoop.jl +++ b/test/codecnoop.jl @@ -213,6 +213,11 @@ output = TranscodingStreams.Buffer(Vector{UInt8}()) @test transcode(Noop(), data, output) === output.data + data = "" + @test String(transcode(Noop, data)) == data + data = "foo" + @test String(transcode(Noop, data)) == data + TranscodingStreams.test_roundtrip_transcode(Noop, Noop) TranscodingStreams.test_roundtrip_read(NoopStream, NoopStream) TranscodingStreams.test_roundtrip_write(NoopStream, NoopStream)