| 60 | } |
| 61 | |
| 62 | std::string Error::code_as_string() const { |
| 63 | static std::unordered_map<ErrorCode, std::string> code_to_str = { |
| 64 | {ErrorCode::OK, ERROR_CODE_OK}, |
| 65 | {ErrorCode::OutOfMemory, ERROR_CODE_OUT_OF_MEMORY}, |
| 66 | {ErrorCode::OutOfBound, ERROR_CODE_OUT_OF_BOUND}, |
| 67 | {ErrorCode::KeyError, ERROR_CODE_KEY_ERROR}, |
| 68 | {ErrorCode::TypeError, ERROR_CODE_TYPE_ERROR}, |
| 69 | {ErrorCode::Invalid, ERROR_CODE_INVALID}, |
| 70 | {ErrorCode::IOError, ERROR_CODE_IO_ERROR}, |
| 71 | {ErrorCode::UnknownError, ERROR_CODE_UNKNOWN_ERROR}, |
| 72 | {ErrorCode::EncodeError, ERROR_CODE_ENCODE_ERROR}, |
| 73 | {ErrorCode::InvalidData, ERROR_CODE_INVALID_DATA}, |
| 74 | {ErrorCode::InvalidRef, ERROR_CODE_INVALID_REF}, |
| 75 | {ErrorCode::UnknownEnum, ERROR_CODE_UNKNOWN_ENUM}, |
| 76 | {ErrorCode::EncodingError, ERROR_CODE_ENCODING_ERROR}, |
| 77 | {ErrorCode::DepthExceed, ERROR_CODE_DEPTH_EXCEED}, |
| 78 | {ErrorCode::Unsupported, ERROR_CODE_UNSUPPORTED}, |
| 79 | {ErrorCode::NotAllowed, ERROR_CODE_NOT_ALLOWED}, |
| 80 | {ErrorCode::StructVersionMismatch, ERROR_CODE_STRUCT_VERSION_MISMATCH}, |
| 81 | {ErrorCode::TypeMismatch, ERROR_CODE_TYPE_MISMATCH}, |
| 82 | {ErrorCode::BufferOutOfBound, ERROR_CODE_BUFFER_OUT_OF_BOUND}, |
| 83 | }; |
| 84 | |
| 85 | auto it = code_to_str.find(state_->code_); |
| 86 | if (it == code_to_str.end()) { |
| 87 | return ERROR_CODE_UNKNOWN_ERROR; |
| 88 | } |
| 89 | return it->second; |
| 90 | } |
| 91 | |
| 92 | ErrorCode Error::string_to_code(const std::string &str) { |
| 93 | static std::unordered_map<std::string, ErrorCode> str_to_code = { |