diff --git a/deps/ox/src/ox/mc/read.cpp b/deps/ox/src/ox/mc/read.cpp index 0ed0828a..3aba33e5 100644 --- a/deps/ox/src/ox/mc/read.cpp +++ b/deps/ox/src/ox/mc/read.cpp @@ -102,7 +102,7 @@ Error MetalClawReader::field(const char*, SerStr val) { return OxError(MC_BUFFENDED); } std::size_t bytesRead = 0; - auto [len, _] = mc::decodeInteger<StringLength>(&m_buff[m_buffIt], m_buffLen - m_buffIt, &bytesRead); + len = mc::decodeInteger<StringLength>(&m_buff[m_buffIt], m_buffLen - m_buffIt, &bytesRead).value; if (pass) { m_buffIt += sizeof(ArrayLength); } @@ -114,8 +114,8 @@ Error MetalClawReader::field(const char*, SerStr val) { if (m_fieldPresence.get(m_field)) { // read the length std::size_t bytesRead = 0; - auto [len, _] = mc::decodeInteger<StringLength>(&m_buff[m_buffIt], m_buffLen - m_buffIt, &bytesRead); - return len; + auto len = mc::decodeInteger<StringLength>(&m_buff[m_buffIt], m_buffLen - m_buffIt, &bytesRead); + return len.value; } return 0; } diff --git a/deps/ox/src/ox/std/error.hpp b/deps/ox/src/ox/std/error.hpp index 300e3f6d..1fd2112e 100644 --- a/deps/ox/src/ox/std/error.hpp +++ b/deps/ox/src/ox/std/error.hpp @@ -75,11 +75,11 @@ struct ValErr { return value; } - constexpr bool ok() const noexcept { + [[nodiscard]] constexpr bool ok() const noexcept { return error == 0; } - constexpr ox::Error get(T *val) noexcept { + [[nodiscard]] constexpr ox::Error get(T *val) noexcept { *val = value; return error; } diff --git a/deps/ox/src/ox/std/strongint.hpp b/deps/ox/src/ox/std/strongint.hpp index 4e2101f5..7ee26108 100644 --- a/deps/ox/src/ox/std/strongint.hpp +++ b/deps/ox/src/ox/std/strongint.hpp @@ -28,6 +28,8 @@ class Integer: Base { constexpr explicit Integer(T i) noexcept; + constexpr Integer(const Integer<T, Base> &i) noexcept; + constexpr Integer<T, Base> operator=(Integer<T, Base> i) noexcept; constexpr Integer<T, Base> operator==(Integer<T, Base> i) const noexcept; @@ -105,6 +107,10 @@ constexpr Integer<T, Base>::Integer(T i) noexcept { m_i = i; } +template<typename T, class Base> +constexpr Integer<T, Base>::Integer(const Integer<T, Base> &i) noexcept:m_i(i.m_i) { +} + template<typename T, class Base> constexpr Integer<T, Base> Integer<T, Base>::operator=(Integer<T, Base> i) noexcept { return Integer<T, Base>(m_i = i.m_i);