-record(encoder_decoder, { encode :: fun((any()) -> {ok, any()} | {error, nil}), decode :: fun((any()) -> {ok, any()} | {error, any()}) }).