[ox/{mc,oc}] Improve noexcept correctness

This commit is contained in:
2021-07-29 22:22:44 -05:00
parent 24ca5623e8
commit 55f14eb548
8 changed files with 186 additions and 175 deletions

View File

@@ -42,23 +42,23 @@ class MetalClawWriter {
~MetalClawWriter() noexcept;
Error field(const char*, int8_t *val) noexcept;
Error field(const char*, int16_t *val) noexcept;
Error field(const char*, int32_t *val) noexcept;
Error field(const char*, int64_t *val) noexcept;
Error field(const char*, const int8_t *val) noexcept;
Error field(const char*, const int16_t *val) noexcept;
Error field(const char*, const int32_t *val) noexcept;
Error field(const char*, const int64_t *val) noexcept;
Error field(const char*, uint8_t *val) noexcept;
Error field(const char*, uint16_t *val) noexcept;
Error field(const char*, uint32_t *val) noexcept;
Error field(const char*, uint64_t *val) noexcept;
Error field(const char*, const uint8_t *val) noexcept;
Error field(const char*, const uint16_t *val) noexcept;
Error field(const char*, const uint32_t *val) noexcept;
Error field(const char*, const uint64_t *val) noexcept;
Error field(const char*, bool *val) noexcept;
Error field(const char*, const bool *val) noexcept;
template<typename T>
Error field(const char*, T *val, std::size_t len);
Error field(const char*, T *val, std::size_t len) noexcept;
template<typename T>
Error field(const char*, HashMap<String, T> *val);
Error field(const char*, HashMap<String, T> *val) noexcept;
template<std::size_t L>
Error field(const char*, BString<L> *val) noexcept;
@@ -66,17 +66,19 @@ class MetalClawWriter {
Error field(const char*, SerStr val) noexcept;
template<typename T>
Error field(const char*, T *val);
Error field(const char*, T *val) noexcept;
template<typename U>
Error field(const char*, UnionView<U> val);
Error field(const char*, UnionView<U> val) noexcept;
template<typename T = std::nullptr_t>
void setTypeInfo(const char *name = T::TypeName, int fields = countFields<T>());
void setTypeInfo(const char *name = T::TypeName, int fields = countFields<T>()) noexcept;
[[nodiscard]]
std::size_t size() noexcept;
static constexpr auto opType() {
[[nodiscard]]
static constexpr auto opType() noexcept {
return OpType::Write;
}
@@ -92,7 +94,7 @@ Error MetalClawWriter::field(const char *name, BString<L> *val) noexcept {
}
template<typename T>
Error MetalClawWriter::field(const char*, T *val) {
Error MetalClawWriter::field(const char*, T *val) noexcept {
if constexpr(isVector_v<T>) {
return field(nullptr, val->data(), val->size());
} else {
@@ -112,7 +114,7 @@ Error MetalClawWriter::field(const char*, T *val) {
}
template<typename U>
Error MetalClawWriter::field(const char*, UnionView<U> val) {
Error MetalClawWriter::field(const char*, UnionView<U> val) noexcept {
bool fieldSet = false;
if (val.get() && (m_unionIdx == -1 || m_unionIdx == m_field)) {
MetalClawWriter writer(m_buff + m_buffIt, m_buffLen - m_buffIt, val.idx());
@@ -128,7 +130,7 @@ Error MetalClawWriter::field(const char*, UnionView<U> val) {
}
template<typename T>
Error MetalClawWriter::field(const char*, T *val, std::size_t len) {
Error MetalClawWriter::field(const char*, T *val, std::size_t len) noexcept {
bool fieldSet = false;
if (len && (m_unionIdx == -1 || m_unionIdx == m_field)) {
@@ -159,7 +161,7 @@ Error MetalClawWriter::field(const char*, T *val, std::size_t len) {
}
template<typename T>
Error MetalClawWriter::field(const char*, HashMap<String, T> *val) {
Error MetalClawWriter::field(const char*, HashMap<String, T> *val) noexcept {
const auto &keys = val->keys();
const auto len = keys.size();
bool fieldSet = false;
@@ -216,7 +218,7 @@ Error MetalClawWriter::appendInteger(I val) noexcept {
}
template<typename T>
void MetalClawWriter::setTypeInfo(const char*, int fields) {
void MetalClawWriter::setTypeInfo(const char*, int fields) noexcept {
m_fields = fields;
m_fieldPresence.setFields(fields);
m_buffIt = m_fieldPresence.getMaxLen();
@@ -224,7 +226,7 @@ void MetalClawWriter::setTypeInfo(const char*, int fields) {
}
template<typename T>
Result<Buffer> writeMC(T *val) {
Result<Buffer> writeMC(T *val) noexcept {
Buffer buff(10 * units::MB);
MetalClawWriter writer(bit_cast<uint8_t*>(buff.data()), buff.size());
oxReturnError(model(&writer, val));
@@ -233,7 +235,7 @@ Result<Buffer> writeMC(T *val) {
}
template<typename T>
Error writeMC(char *buff, std::size_t buffLen, T *val, std::size_t *sizeOut = nullptr) {
Error writeMC(char *buff, std::size_t buffLen, T *val, std::size_t *sizeOut = nullptr) noexcept {
MetalClawWriter writer(bit_cast<uint8_t*>(buff), buffLen);
auto err = model(&writer, val);
if (sizeOut) {