hessian2/basic_codec/bool_codec.cc (25 lines of code) (raw):

#include "hessian2/basic_codec/bool_codec.hpp" namespace Hessian2 { template <> std::unique_ptr<bool> Decoder::decode() { uint8_t code = reader_->read<uint8_t>().second; if (code == 0x46) { return std::make_unique<bool>(false); } if (code == 0x54) { return std::make_unique<bool>(true); } error_pos_ = offset(); error_code_ = ErrorCode::UNEXPECTED_TYPE; return nullptr; } // # boolean true/false // ::= 'T' // ::= 'F' template <> bool Encoder::encode(const bool &value) { if (value) { writer_->writeByte(0x54); } else { writer_->writeByte(0x46); } return true; } } // namespace Hessian2