#defmodule Encoding.Default do # defstruct term: nil # # defdelegate encode(str, from \\ %Encoding{encoding: :"UTF-8"}), to: Encoding.UTF_8 # defimpl Encoding.Protocol do # def encode(%Encoding.Default{term: str}, :default), do: %Encoding.Default{term: str} # def encode(term, %Encoding{encoding: to}), do: encode(term, to) # def encode(%Encoding.Default{term: str}, to), do: Encoding.parse(to).encode(str, %Encoding{encoding: :"UTF-8"}) # end #end