diff --git a/src/transcode.jl b/src/transcode.jl index b1b03876..93dd41e0 100644 --- a/src/transcode.jl +++ b/src/transcode.jl @@ -40,6 +40,13 @@ 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`. This mirrors the +# implementation of the latter +function Base.transcode(::Type{C}, src::String) where {C<:Codec} + return transcode(C, codeunits(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)