Ultimately, the idea is to allow users to do:
defmodule MyContentClient do
use Pepper.HTTP.ContentClient,
encoders: my_encoders,
decoders: my_decoders
end
The reasoning? Compiler warnings for custom encoder and decoder modules that will be compiled AFTER pepper is compiled, these floating references will cause scary warnings for users, plus it affects the global ContentClient, which is annoying at its best and dangerous at its absolute worst, the library's default ContentClient should be "sacred" and unchangeable even for config, if clients want a custom version they can create one using the above macro.