#pragma once class Encoder; class Decoder; class DecoderProto; class EncoderProto; class Config; namespace Arch { std::unique_ptr createDecoder(Config& config); std::unique_ptr createDecoder(const DecoderProto& config); std::unique_ptr createEncoder(Config& config); std::unique_ptr createEncoder(const EncoderProto& config); }