[ox/claw] Add writeClaw Writer_c variant

This commit is contained in:
2026-05-17 14:29:43 -05:00
parent f24929f421
commit be32d575f5
+21
View File
@@ -120,4 +120,25 @@ Result<Buffer> writeClaw(
return out;
}
Error writeClaw(
auto const &obj,
Writer_c auto &writer,
ClawFormat const fmt = ClawFormat::Metal) noexcept {
OX_RETURN_ERROR(detail::writeClawHeader(writer, &obj, fmt));
#ifdef OX_USE_STDLIB
if (fmt == ClawFormat::Metal) {
OX_RETURN_ERROR(writeMC(writer, obj));
} else if (fmt == ClawFormat::Organic) {
OX_REQUIRE(data, writeOC(obj));
OX_RETURN_ERROR(writer.write(data.data(), data.size()));
}
#else
if (fmt != ClawFormat::Metal) {
return ox::Error(1, "OC is not supported in this build");
}
OX_RETURN_ERROR(writeMC(writer, obj));
#endif
return {};
}
}