t() :: term()
contents(struct()) :: {:ok, iodata()} | {:error, String.t()}
destination(struct()) :: Path.t()