[ox/claw] Cleanup error handling

This commit is contained in:
Gary Talent 2021-04-25 15:01:11 -05:00
parent 6c629a9f13
commit ee6929c7f0

View File

@ -37,18 +37,17 @@ Result<Vector<char>> stripClawHeader(const char *buff, std::size_t buffLen) noex
template<typename T> template<typename T>
Error readClaw(const char *buff, std::size_t buffLen, T *val) { Error readClaw(const char *buff, std::size_t buffLen, T *val) {
auto header = detail::readHeader(buff, buffLen); oxRequire(header, detail::readHeader(buff, buffLen));
oxReturnError(header); switch (header.fmt) {
switch (header.value.fmt) {
case ClawFormat::Metal: case ClawFormat::Metal:
{ {
MetalClawReader reader(bit_cast<uint8_t*>(header.value.data), buffLen); MetalClawReader reader(bit_cast<uint8_t*>(header.data), buffLen);
return model(&reader, val); return model(&reader, val);
} }
#ifdef OX_USE_STDLIB #ifdef OX_USE_STDLIB
case ClawFormat::Organic: case ClawFormat::Organic:
{ {
OrganicClawReader reader(bit_cast<uint8_t*>(header.value.data), buffLen); OrganicClawReader reader(bit_cast<uint8_t*>(header.data), buffLen);
return model(&reader, val); return model(&reader, val);
} }
#endif #endif