[keel] Cleanup
All checks were successful
Build / build (push) Successful in 1m19s

This commit is contained in:
2025-08-12 22:57:13 -05:00
parent e59382dd60
commit 8a430faf4c
17 changed files with 65 additions and 67 deletions

View File

@@ -13,11 +13,11 @@ namespace keel {
constexpr auto K1HdrSz = 40; constexpr auto K1HdrSz = 40;
ox::Result<ox::UUID> readUuidHeader(ox::BufferView buff) noexcept; ox::Result<ox::UUID> readUuidHeader(ox::BufferView const &buff) noexcept;
ox::Result<ox::UUID> regenerateUuidHeader(ox::Buffer &buff) noexcept; ox::Result<ox::UUID> regenerateUuidHeader(ox::Buffer &buff) noexcept;
ox::Error writeUuidHeader(ox::Writer_c auto &writer, ox::UUID const&uuid) noexcept { ox::Error writeUuidHeader(ox::Writer_c auto &writer, ox::UUID const &uuid) noexcept {
OX_RETURN_ERROR(write(writer, "K1;")); OX_RETURN_ERROR(write(writer, "K1;"));
OX_RETURN_ERROR(uuid.toString(writer)); OX_RETURN_ERROR(uuid.toString(writer));
return writer.put(';'); return writer.put(';');
@@ -35,15 +35,15 @@ ox::Result<T> readAsset(ox::BufferView buff) noexcept {
return out; return out;
} }
ox::Result<ox::ModelObject> readAsset(ox::TypeStore &ts, ox::BufferView buff) noexcept; ox::Result<ox::ModelObject> readAsset(ox::TypeStore &ts, ox::BufferView const &buff) noexcept;
struct AssetHdr { struct AssetHdr {
ox::UUID uuid; ox::UUID uuid;
ox::ClawHeader clawHdr; ox::ClawHeader clawHdr;
}; };
ox::Result<ox::StringView> readAssetTypeId(ox::BufferView buff) noexcept; ox::Result<ox::StringView> readAssetTypeId(ox::BufferView const &buff) noexcept;
ox::Result<AssetHdr> readAssetHeader(ox::BufferView buff) noexcept; ox::Result<AssetHdr> readAssetHeader(ox::BufferView const &buff) noexcept;
} }

View File

@@ -351,23 +351,23 @@ class AssetManager {
template<typename T> template<typename T>
class AssetRef { class AssetRef {
private: private:
T const* m_obj = nullptr; T const *m_obj = nullptr;
public: public:
constexpr AssetRef() noexcept = default; constexpr AssetRef() noexcept = default;
explicit constexpr AssetRef(T const*obj) noexcept: m_obj(obj) { explicit constexpr AssetRef(T const *obj) noexcept: m_obj(obj) {
} }
constexpr T const*get() const noexcept { constexpr T const *get() const noexcept {
return m_obj; return m_obj;
} }
constexpr T const&operator*() const & noexcept { constexpr T const &operator*() const & noexcept {
return *m_obj; return *m_obj;
} }
constexpr T const*operator->() const noexcept { constexpr T const *operator->() const noexcept {
return m_obj; return m_obj;
} }

View File

@@ -35,7 +35,7 @@ class Context {
}; };
constexpr ox::SpanView<PackTransform> packTransforms( constexpr ox::SpanView<PackTransform> packTransforms(
[[maybe_unused]] Context const&ctx) noexcept { [[maybe_unused]] Context const &ctx) noexcept {
#ifndef OX_BARE_METAL #ifndef OX_BARE_METAL
return ctx.packTransforms; return ctx.packTransforms;
#else #else
@@ -44,7 +44,7 @@ constexpr ox::SpanView<PackTransform> packTransforms(
} }
constexpr ox::SpanView<Converter> converters( constexpr ox::SpanView<Converter> converters(
[[maybe_unused]] Context const&ctx) noexcept { [[maybe_unused]] Context const &ctx) noexcept {
#ifndef OX_BARE_METAL #ifndef OX_BARE_METAL
return ctx.converters; return ctx.converters;
#else #else

View File

@@ -29,22 +29,22 @@ OX_MODEL_BEGIN(PreloadPtr)
OX_MODEL_FIELD(preloadAddr) OX_MODEL_FIELD(preloadAddr)
OX_MODEL_END() OX_MODEL_END()
ox::Result<std::size_t> getPreloadAddr(Context &ctx, ox::FileAddress const&addr) noexcept; ox::Result<std::size_t> getPreloadAddr(Context &ctx, ox::FileAddress const &addr) noexcept;
ox::Result<std::size_t> getPreloadAddr(Context &ctx, ox::StringViewCR path) noexcept; ox::Result<std::size_t> getPreloadAddr(Context &ctx, ox::StringViewCR path) noexcept;
void createUuidMapping(Context &ctx, ox::StringViewCR filePath, ox::UUID const&uuid) noexcept; void createUuidMapping(Context &ctx, ox::StringViewCR filePath, ox::UUID const &uuid) noexcept;
// map of UUIDs to paths // map of UUIDs to paths
using DuplicateSet = ox::HashMap<ox::UUID, ox::Vector<ox::String>>; using DuplicateSet = ox::HashMap<ox::UUID, ox::Vector<ox::String>>;
ox::Result<ox::UUID> pathToUuid(Context &ctx, ox::StringViewCR path) noexcept; ox::Result<ox::UUID> pathToUuid(Context &ctx, ox::StringViewCR path) noexcept;
ox::Result<ox::UUID> getUuid(Context &ctx, ox::FileAddress const&fileAddr) noexcept; ox::Result<ox::UUID> getUuid(Context &ctx, ox::FileAddress const &fileAddr) noexcept;
ox::Result<ox::UUID> getUuid(Context &ctx, ox::StringViewCR path) noexcept; ox::Result<ox::UUID> getUuid(Context &ctx, ox::StringViewCR path) noexcept;
ox::Result<ox::CStringView> getPath(Context &ctx, ox::FileAddress const&fileAddr) noexcept; ox::Result<ox::CStringView> getPath(Context &ctx, ox::FileAddress const &fileAddr) noexcept;
ox::Result<ox::CStringView> getPath(Context &ctx, ox::CStringViewCR fileId) noexcept; ox::Result<ox::CStringView> getPath(Context &ctx, ox::CStringViewCR fileId) noexcept;
@@ -58,7 +58,7 @@ ox::Result<ox::CStringView> uuidUrlToPath(Context &ctx, ox::StringViewCR uuid) n
ox::Result<ox::CStringView> uuidToPath(Context &ctx, ox::StringViewCR uuid) noexcept; ox::Result<ox::CStringView> uuidToPath(Context &ctx, ox::StringViewCR uuid) noexcept;
ox::Result<ox::CStringView> uuidToPath(Context &ctx, ox::UUID const&uuid) noexcept; ox::Result<ox::CStringView> uuidToPath(Context &ctx, ox::UUID const &uuid) noexcept;
[[nodiscard]] [[nodiscard]]
constexpr bool isUuidUrl(ox::StringViewCR path) noexcept { constexpr bool isUuidUrl(ox::StringViewCR path) noexcept {
@@ -147,7 +147,7 @@ template<typename T>
ox::Result<AssetRef<T>> readObj( ox::Result<AssetRef<T>> readObj(
Context &ctx, Context &ctx,
ox::StringViewCR assetId, ox::StringViewCR assetId,
[[maybe_unused]] bool forceLoad = false) noexcept { [[maybe_unused]] bool const forceLoad = false) noexcept {
#ifndef OX_BARE_METAL #ifndef OX_BARE_METAL
return readObjFile<T>(ctx, assetId, forceLoad); return readObjFile<T>(ctx, assetId, forceLoad);
#else #else
@@ -158,8 +158,8 @@ ox::Result<AssetRef<T>> readObj(
template<typename T> template<typename T>
ox::Result<AssetRef<T>> readObj( ox::Result<AssetRef<T>> readObj(
Context &ctx, Context &ctx,
ox::FileAddress const&file, ox::FileAddress const &file,
[[maybe_unused]] bool forceLoad = false) noexcept { [[maybe_unused]] bool const forceLoad = false) noexcept {
#ifndef OX_BARE_METAL #ifndef OX_BARE_METAL
OX_REQUIRE(assetId, file.getPath()); OX_REQUIRE(assetId, file.getPath());
return readObj<T>(ctx, ox::StringView(assetId), forceLoad); return readObj<T>(ctx, ox::StringView(assetId), forceLoad);
@@ -176,9 +176,9 @@ ox::Result<AssetRef<T>> readObj(
template<typename T> template<typename T>
ox::Error writeObj( ox::Error writeObj(
Context &ctx, Context &ctx,
ox::FileAddress const&file, ox::FileAddress const &file,
T const&obj, T const &obj,
ox::ClawFormat fmt = ox::ClawFormat::Metal) noexcept { ox::ClawFormat const fmt = ox::ClawFormat::Metal) noexcept {
OX_REQUIRE(objBuff, ox::writeClaw(obj, fmt)); OX_REQUIRE(objBuff, ox::writeClaw(obj, fmt));
return ctx.rom->write(file, objBuff.data(), objBuff.size()); return ctx.rom->write(file, objBuff.data(), objBuff.size());
} }

View File

@@ -40,6 +40,6 @@ class Module {
void registerModule(Module const*mod) noexcept; void registerModule(Module const*mod) noexcept;
[[nodiscard]] [[nodiscard]]
ox::Vector<keel::Module const*> const&modules() noexcept; ox::Vector<keel::Module const*> const &modules() noexcept;
} }

View File

@@ -125,7 +125,7 @@ ox::Error preloadObj(
OX_RETURN_ERROR(err); OX_RETURN_ERROR(err);
keel::PreloadPtr const p{.preloadAddr = a}; keel::PreloadPtr const p{.preloadAddr = a};
OX_RETURN_ERROR(ox::writeMC(p).moveTo(buff)); OX_RETURN_ERROR(ox::writeMC(p).moveTo(buff));
auto const&pbufSz = pl.buff().size(); auto const &pbufSz = pl.buff().size();
oxOutf("preloaded {} as a {} @ {} to {} / {}, total size: {}\n", oxOutf("preloaded {} as a {} @ {} to {} / {}, total size: {}\n",
path, obj.type()->typeName, a, a + size, pbufSz - 1, pbufSz - a); path, obj.type()->typeName, a, a + size, pbufSz - 1, pbufSz - a);
} else { } else {
@@ -148,7 +148,7 @@ ox::Error preloadDir(
// copy // copy
oxTracef("pack.preload", "path: {}", path); oxTracef("pack.preload", "path: {}", path);
OX_REQUIRE(fileList, romFs.ls(path)); OX_REQUIRE(fileList, romFs.ls(path));
for (auto const&name : fileList) { for (auto const &name : fileList) {
auto const filePath = ox::sfmt("{}{}", path, name); auto const filePath = ox::sfmt("{}{}", path, name);
OX_REQUIRE(stat, romFs.stat(filePath)); OX_REQUIRE(stat, romFs.stat(filePath));
if (stat.fileType == ox::FileType::Directory) { if (stat.fileType == ox::FileType::Directory) {
@@ -169,7 +169,7 @@ ox::Error preloadDir(
} }
template<typename PlatSpec> template<typename PlatSpec>
ox::Error appendBinary(ox::Buffer &binBuff, ox::SpanView<char> const&fsBuff, ox::Preloader<PlatSpec> &pl) noexcept { ox::Error appendBinary(ox::Buffer &binBuff, ox::SpanView<char> const &fsBuff, ox::Preloader<PlatSpec> &pl) noexcept {
constexpr auto padbin = [](ox::BufferWriter &w, unsigned factor) noexcept -> ox::Error { constexpr auto padbin = [](ox::BufferWriter &w, unsigned factor) noexcept -> ox::Error {
return w.write(nullptr, factor - w.buff().size() % factor); return w.write(nullptr, factor - w.buff().size() % factor);
}; };
@@ -185,7 +185,7 @@ ox::Error appendBinary(ox::Buffer &binBuff, ox::SpanView<char> const&fsBuff, ox:
OX_RETURN_ERROR(padbin(w, hdrSize)); OX_RETURN_ERROR(padbin(w, hdrSize));
OX_RETURN_ERROR(w.write(preloadHdr.data(), preloadHdr.bytes())); OX_RETURN_ERROR(w.write(preloadHdr.data(), preloadHdr.bytes()));
OX_RETURN_ERROR(pl.offsetPtrs(binBuff.size())); OX_RETURN_ERROR(pl.offsetPtrs(binBuff.size()));
auto const&plBuff = pl.buff(); auto const &plBuff = pl.buff();
OX_RETURN_ERROR(w.write(plBuff.data(), plBuff.size())); OX_RETURN_ERROR(w.write(plBuff.data(), plBuff.size()));
return {}; return {};
} }

View File

@@ -122,7 +122,7 @@ class BaseConverter {
virtual ox::Result<ox::UPtr<Wrap>> convertPtrToPtr(keel::Context &ctx, Wrap &src) const noexcept = 0; virtual ox::Result<ox::UPtr<Wrap>> convertPtrToPtr(keel::Context &ctx, Wrap &src) const noexcept = 0;
virtual ox::Result<ox::UPtr<Wrap>> convertBuffToPtr( virtual ox::Result<ox::UPtr<Wrap>> convertBuffToPtr(
Context &ctx, ox::BufferView const&srcBuff) const noexcept = 0; Context &ctx, ox::BufferView const &srcBuff) const noexcept = 0;
[[nodiscard]] [[nodiscard]]
constexpr bool matches( constexpr bool matches(
@@ -187,7 +187,7 @@ class ConverterFunc final: public BaseConverter {
} }
ox::Result<ox::UPtr<Wrap>> convertBuffToPtr( ox::Result<ox::UPtr<Wrap>> convertBuffToPtr(
Context &ctx, ox::BufferView const&srcBuff) const noexcept override { Context &ctx, ox::BufferView const &srcBuff) const noexcept override {
OX_REQUIRE_M(src, readAsset<SrcType>(srcBuff)); OX_REQUIRE_M(src, readAsset<SrcType>(srcBuff));
ox::Result<ox::UPtr<Wrap>> dst{makeWrap<DstType>()}; ox::Result<ox::UPtr<Wrap>> dst{makeWrap<DstType>()};
OX_RETURN_ERROR(convert(ctx, src, wrapCast<DstType>(*dst.value))); OX_RETURN_ERROR(convert(ctx, src, wrapCast<DstType>(*dst.value)));
@@ -220,7 +220,7 @@ class Converter {
ox::Result<ox::UPtr<Wrap>> convert( ox::Result<ox::UPtr<Wrap>> convert(
Context &ctx, Context &ctx,
ox::BufferView const&srcBuffer, ox::BufferView const &srcBuffer,
ox::StringViewCR dstTypeName, ox::StringViewCR dstTypeName,
int dstTypeVersion) noexcept; int dstTypeVersion) noexcept;
@@ -241,7 +241,7 @@ ox::Result<ox::UPtr<Wrap>> convert(
ox::Result<ox::UPtr<Wrap>> convert( ox::Result<ox::UPtr<Wrap>> convert(
Context &ctx, Context &ctx,
auto const&src, auto const &src,
ox::StringViewCR dstTypeName, ox::StringViewCR dstTypeName,
int const dstTypeVersion) noexcept { int const dstTypeVersion) noexcept {
auto srcCpy = src; auto srcCpy = src;
@@ -258,13 +258,13 @@ ox::Result<DstType> convertObjToObj(
} }
template<typename DstType> template<typename DstType>
ox::Result<DstType> convert(Context &ctx, ox::BufferView const&src) noexcept { ox::Result<DstType> convert(Context &ctx, ox::BufferView const &src) noexcept {
OX_REQUIRE(out, convert(ctx, src, ox::ModelTypeName_v<DstType>, ox::ModelTypeVersion_v<DstType>)); OX_REQUIRE(out, convert(ctx, src, ox::ModelTypeName_v<DstType>, ox::ModelTypeVersion_v<DstType>));
return std::move(wrapCast<DstType>(*out)); return std::move(wrapCast<DstType>(*out));
} }
template<typename DstType> template<typename DstType>
ox::Error convert(Context &ctx, ox::BufferView const&buff, DstType &outObj) noexcept { ox::Error convert(Context &ctx, ox::BufferView const &buff, DstType &outObj) noexcept {
OX_REQUIRE(out, convert(ctx, buff, ox::ModelTypeName_v<DstType>, ox::ModelTypeVersion_v<DstType>)); OX_REQUIRE(out, convert(ctx, buff, ox::ModelTypeName_v<DstType>, ox::ModelTypeVersion_v<DstType>));
outObj = std::move(wrapCast<DstType>(*out)); outObj = std::move(wrapCast<DstType>(*out));
return {}; return {};
@@ -279,7 +279,7 @@ ox::Error convertObjToObj(Context &ctx, auto &src, DstType &outObj) noexcept {
template<typename DstType> template<typename DstType>
ox::Result<ox::Buffer> convertBuffToBuff( ox::Result<ox::Buffer> convertBuffToBuff(
Context &ctx, ox::BufferView const&src, ox::ClawFormat const fmt) noexcept { Context &ctx, ox::BufferView const &src, ox::ClawFormat const fmt) noexcept {
OX_REQUIRE(out, convert(ctx, src, ox::ModelTypeName_v<DstType>, ox::ModelTypeVersion_v<DstType>)); OX_REQUIRE(out, convert(ctx, src, ox::ModelTypeName_v<DstType>, ox::ModelTypeVersion_v<DstType>));
return ox::writeClaw<DstType>(wrapCast<DstType>(*out), fmt); return ox::writeClaw<DstType>(wrapCast<DstType>(*out), fmt);
} }

View File

@@ -16,7 +16,7 @@ class TypeStore: public ox::TypeStore {
ox::String m_descPath; ox::String m_descPath;
public: public:
explicit TypeStore(ox::FileSystem &fs, ox::StringView descPath) noexcept; explicit TypeStore(ox::FileSystem &fs, ox::StringViewCR descPath) noexcept;
protected: protected:
ox::Result<ox::UPtr<ox::DescriptorType>> loadDescriptor(ox::StringView typeId) noexcept override; ox::Result<ox::UPtr<ox::DescriptorType>> loadDescriptor(ox::StringView typeId) noexcept override;

View File

@@ -6,7 +6,7 @@
namespace keel { namespace keel {
ox::Result<ox::UUID> readUuidHeader(ox::BufferView buff) noexcept { ox::Result<ox::UUID> readUuidHeader(ox::BufferView const &buff) noexcept {
if (buff.size() < K1HdrSz) [[unlikely]] { if (buff.size() < K1HdrSz) [[unlikely]] {
return ox::Error{1, "Insufficient data to contain complete Keel header"}; return ox::Error{1, "Insufficient data to contain complete Keel header"};
} }
@@ -27,16 +27,15 @@ ox::Result<ox::UUID> regenerateUuidHeader(ox::Buffer &buff) noexcept {
return id; return id;
} }
ox::Result<ox::ModelObject> readAsset(ox::TypeStore &ts, ox::BufferView buff) noexcept { ox::Result<ox::ModelObject> readAsset(ox::TypeStore &ts, ox::BufferView const &buff) noexcept {
std::size_t offset = 0; std::size_t offset = 0;
if (!readUuidHeader(buff).error) { if (!readUuidHeader(buff).error) {
offset = K1HdrSz; offset = K1HdrSz;
} }
buff += offset; return ox::readClaw(ts, buff + offset);
return ox::readClaw(ts, buff);
} }
ox::Result<ox::StringView> readAssetTypeId(ox::BufferView const buff) noexcept { ox::Result<ox::StringView> readAssetTypeId(ox::BufferView const &buff) noexcept {
auto const err = readUuidHeader(buff).error; auto const err = readUuidHeader(buff).error;
auto const offset = err ? 0u : K1HdrSz; auto const offset = err ? 0u : K1HdrSz;
if (offset >= buff.size()) [[unlikely]] { if (offset >= buff.size()) [[unlikely]] {
@@ -45,15 +44,14 @@ ox::Result<ox::StringView> readAssetTypeId(ox::BufferView const buff) noexcept {
return ox::readClawTypeId(buff + offset); return ox::readClawTypeId(buff + offset);
} }
ox::Result<AssetHdr> readAssetHeader(ox::BufferView buff) noexcept { ox::Result<AssetHdr> readAssetHeader(ox::BufferView const &buff) noexcept {
ox::Result<AssetHdr> out; ox::Result<AssetHdr> out;
auto const err = readUuidHeader(buff).moveTo(out.value.uuid); auto const err = readUuidHeader(buff).moveTo(out.value.uuid);
auto const offset = err ? 0u : K1HdrSz; auto const offset = err ? 0u : K1HdrSz;
if (offset >= buff.size()) [[unlikely]] { if (offset >= buff.size()) [[unlikely]] {
return ox::Error(1, "Buffer too small for expected data"); return ox::Error(1, "Buffer too small for expected data");
} }
buff += offset; OX_RETURN_ERROR(ox::readClawHeader(buff + offset).moveTo(out.value.clawHdr));
OX_RETURN_ERROR(ox::readClawHeader(buff).moveTo(out.value.clawHdr));
return out; return out;
} }

View File

@@ -16,7 +16,7 @@ static ox::Error init(
setRomFs(ctx, std::move(fs), *duplicateSet) : setRomFs(ctx, std::move(fs), *duplicateSet) :
setRomFs(ctx, std::move(fs)); setRomFs(ctx, std::move(fs));
#ifndef OX_BARE_METAL #ifndef OX_BARE_METAL
auto const&mods = modules(); auto const &mods = modules();
for (auto &mod : mods) { for (auto &mod : mods) {
// register type converters // register type converters
for (auto const c : mod->converters()) { for (auto const c : mod->converters()) {

View File

@@ -24,10 +24,10 @@ ox::Result<char*> loadRom(ox::StringViewCR path) noexcept {
auto buff = new char[static_cast<std::size_t>(size)]; auto buff = new char[static_cast<std::size_t>(size)];
file.read(buff, size); file.read(buff, size);
return buff; return buff;
} catch (std::ios_base::failure const&e) { } catch (std::ios_base::failure const &e) {
oxErrorf("Could not read ROM file due to file IO failure: {}", e.what()); oxErrorf("Could not read ROM file due to file IO failure: {}", e.what());
return ox::Error(2, "Could not read ROM file"); return ox::Error(2, "Could not read ROM file");
} catch (std::bad_alloc const&e) { } catch (std::bad_alloc const &e) {
oxErrorf("Could not read ROM file due to new failure: {}", e.what()); oxErrorf("Could not read ROM file due to new failure: {}", e.what());
return ox::Error(2, "Could not allocate memory for ROM file"); return ox::Error(2, "Could not allocate memory for ROM file");
} }
@@ -42,14 +42,14 @@ static void clearUuidMap(Context &ctx) noexcept {
ctx.pathToUuid.clear(); ctx.pathToUuid.clear();
} }
void createUuidMapping(Context &ctx, ox::StringViewCR filePath, ox::UUID const&uuid) noexcept { void createUuidMapping(Context &ctx, ox::StringViewCR filePath, ox::UUID const &uuid) noexcept {
ctx.pathToUuid[filePath] = uuid; ctx.pathToUuid[filePath] = uuid;
ctx.uuidToPath[uuid.toString()] = filePath; ctx.uuidToPath[uuid.toString()] = filePath;
} }
static ox::Error buildUuidMap(Context &ctx, ox::StringViewCR path, DuplicateSet *duplicates) noexcept { static ox::Error buildUuidMap(Context &ctx, ox::StringViewCR path, DuplicateSet *duplicates) noexcept {
OX_REQUIRE(files, ctx.rom->ls(path)); OX_REQUIRE(files, ctx.rom->ls(path));
for (auto const&f : files) { for (auto const &f : files) {
OX_REQUIRE_M(filePath, ox::join("/", ox::Array<ox::StringView, 2>{path, f})); OX_REQUIRE_M(filePath, ox::join("/", ox::Array<ox::StringView, 2>{path, f}));
OX_REQUIRE(stat, ctx.rom->stat(filePath)); OX_REQUIRE(stat, ctx.rom->stat(filePath));
if (stat.fileType == ox::FileType::NormalFile) { if (stat.fileType == ox::FileType::NormalFile) {
@@ -97,7 +97,7 @@ ox::Result<ox::UUID> pathToUuid(Context &ctx, ox::StringViewCR path) noexcept {
#endif #endif
} }
ox::Result<ox::UUID> getUuid(Context &ctx, ox::FileAddress const&fileAddr) noexcept { ox::Result<ox::UUID> getUuid(Context &ctx, ox::FileAddress const &fileAddr) noexcept {
OX_REQUIRE(path, fileAddr.getPath()); OX_REQUIRE(path, fileAddr.getPath());
return getUuid(ctx, path); return getUuid(ctx, path);
} }
@@ -111,7 +111,7 @@ ox::Result<ox::UUID> getUuid(Context &ctx, ox::StringViewCR path) noexcept {
} }
} }
ox::Result<ox::CStringView> getPath(Context &ctx, ox::FileAddress const&fileAddr) noexcept { ox::Result<ox::CStringView> getPath(Context &ctx, ox::FileAddress const &fileAddr) noexcept {
OX_REQUIRE(path, fileAddr.getPath()); OX_REQUIRE(path, fileAddr.getPath());
if (beginsWith(path, "uuid://")) { if (beginsWith(path, "uuid://")) {
auto const uuid = substr(path, 7); auto const uuid = substr(path, 7);
@@ -173,7 +173,7 @@ ox::Result<ox::CStringView> uuidToPath(Context &ctx, ox::StringViewCR uuid) noex
#endif #endif
} }
ox::Result<ox::CStringView> uuidToPath(Context &ctx, ox::UUID const&uuid) noexcept { ox::Result<ox::CStringView> uuidToPath(Context &ctx, ox::UUID const &uuid) noexcept {
#ifndef OX_BARE_METAL #ifndef OX_BARE_METAL
OX_REQUIRE_M(out, ctx.uuidToPath.at(uuid.toString())); OX_REQUIRE_M(out, ctx.uuidToPath.at(uuid.toString()));
return ox::CStringView(*out); return ox::CStringView(*out);
@@ -240,7 +240,7 @@ ox::Result<std::size_t> getPreloadAddr(keel::Context &ctx, ox::StringViewCR path
return static_cast<std::size_t>(p.preloadAddr) + ctx.preloadSectionOffset; return static_cast<std::size_t>(p.preloadAddr) + ctx.preloadSectionOffset;
} }
ox::Result<std::size_t> getPreloadAddr(keel::Context &ctx, ox::FileAddress const&addr) noexcept { ox::Result<std::size_t> getPreloadAddr(keel::Context &ctx, ox::FileAddress const &addr) noexcept {
OX_REQUIRE(stat, ctx.rom->stat(addr)); OX_REQUIRE(stat, ctx.rom->stat(addr));
OX_REQUIRE(buff, static_cast<ox::MemFS&>(*ctx.rom).directAccess(addr)); OX_REQUIRE(buff, static_cast<ox::MemFS&>(*ctx.rom).directAccess(addr));
PreloadPtr p; PreloadPtr p;

View File

@@ -8,14 +8,14 @@ namespace keel {
static ox::Vector<Module const*> mods; static ox::Vector<Module const*> mods;
void registerModule(Module const*mod) noexcept { void registerModule(Module const *mod) noexcept {
if (mod) { if (mod) {
mods.emplace_back(mod); mods.emplace_back(mod);
} }
} }
[[nodiscard]] [[nodiscard]]
ox::Vector<Module const*> const&modules() noexcept { ox::Vector<Module const*> const &modules() noexcept {
return mods; return mods;
} }

View File

@@ -32,7 +32,7 @@ static ox::Result<ox::Buffer> readFileBuff(ox::StringViewCR path) noexcept {
file.seekg(0, std::ios::beg); file.seekg(0, std::ios::beg);
file.read(buff.data(), static_cast<std::streamsize>(buff.size())); file.read(buff.data(), static_cast<std::streamsize>(buff.size()));
return buff; return buff;
} catch (std::ios_base::failure const&e) { } catch (std::ios_base::failure const &e) {
oxErrorf("Could not read OxFS file: {}", e.what()); oxErrorf("Could not read OxFS file: {}", e.what());
return ox::Error(2, "Could not read OxFS file"); return ox::Error(2, "Could not read OxFS file");
} }

View File

@@ -144,7 +144,7 @@ static ox::Error transformClaw(
// copy // copy
oxTracef("pack.transformClaw", "path: {}", path); oxTracef("pack.transformClaw", "path: {}", path);
OX_REQUIRE(fileList, dest.ls(path)); OX_REQUIRE(fileList, dest.ls(path));
for (auto const&name : fileList) { for (auto const &name : fileList) {
auto const filePath = ox::sfmt("{}{}", path, name); auto const filePath = ox::sfmt("{}{}", path, name);
OX_REQUIRE(stat, dest.stat(filePath)); OX_REQUIRE(stat, dest.stat(filePath));
if (stat.fileType == ox::FileType::Directory) { if (stat.fileType == ox::FileType::Directory) {
@@ -171,7 +171,7 @@ static ox::Error copy(
auto const childLogPrefix = ox::sfmt("{}\t", logPrefix); auto const childLogPrefix = ox::sfmt("{}\t", logPrefix);
// copy // copy
OX_REQUIRE(fileList, src.ls(path)); OX_REQUIRE(fileList, src.ls(path));
for (auto const&name : fileList) { for (auto const &name : fileList) {
auto const currentFile = ox::sfmt("{}{}", path, name); auto const currentFile = ox::sfmt("{}{}", path, name);
if (beginsWith(name, ".")) { if (beginsWith(name, ".")) {
continue; continue;

View File

@@ -9,12 +9,12 @@
namespace keel { namespace keel {
static ox::Result<BaseConverter const*> findConverter( static ox::Result<BaseConverter const*> findConverter(
ox::SpanView<Converter> const&converters, ox::SpanView<Converter> const &converters,
ox::StringViewCR srcTypeName, ox::StringViewCR srcTypeName,
int const srcTypeVersion, int const srcTypeVersion,
ox::StringViewCR dstTypeName, ox::StringViewCR dstTypeName,
int const dstTypeVersion) noexcept { int const dstTypeVersion) noexcept {
for (auto const&c : converters) { for (auto const &c : converters) {
if (c.converter().matches(srcTypeName, srcTypeVersion, dstTypeName, dstTypeVersion)) { if (c.converter().matches(srcTypeName, srcTypeVersion, dstTypeName, dstTypeVersion)) {
return &c.converter(); return &c.converter();
} }
@@ -22,17 +22,17 @@ static ox::Result<BaseConverter const*> findConverter(
return ox::Error{1, "Could not find converter"}; return ox::Error{1, "Could not find converter"};
}; };
static ox::Result<ox::UPtr<Wrap>> convert(BaseConverter const&c, Context &ctx, ox::BufferView const&src) noexcept { static ox::Result<ox::UPtr<Wrap>> convert(BaseConverter const &c, Context &ctx, ox::BufferView const &src) noexcept {
return c.convertBuffToPtr(ctx, src); return c.convertBuffToPtr(ctx, src);
} }
static ox::Result<ox::UPtr<Wrap>> convert(BaseConverter const&c, Context &ctx, Wrap &src) noexcept { static ox::Result<ox::UPtr<Wrap>> convert(BaseConverter const &c, Context &ctx, Wrap &src) noexcept {
return c.convertPtrToPtr(ctx, src); return c.convertPtrToPtr(ctx, src);
} }
static ox::Result<ox::UPtr<Wrap>> convert( static ox::Result<ox::UPtr<Wrap>> convert(
Context &ctx, Context &ctx,
ox::SpanView<Converter> const&converters, ox::SpanView<Converter> const &converters,
auto &src, auto &src,
ox::StringViewCR srcTypeName, ox::StringViewCR srcTypeName,
int const srcTypeVersion, int const srcTypeVersion,
@@ -45,7 +45,7 @@ static ox::Result<ox::UPtr<Wrap>> convert(
return convert(*c, ctx, src); return convert(*c, ctx, src);
} }
// try to chain multiple converters // try to chain multiple converters
for (auto const&subConverter : converters) { for (auto const &subConverter : converters) {
if (!subConverter.converter().dstMatches(dstTypeName, dstTypeVersion)) { if (!subConverter.converter().dstMatches(dstTypeName, dstTypeVersion)) {
continue; continue;
} }
@@ -61,7 +61,7 @@ static ox::Result<ox::UPtr<Wrap>> convert(
ox::Result<ox::UPtr<Wrap>> convert( ox::Result<ox::UPtr<Wrap>> convert(
Context &ctx, Context &ctx,
ox::BufferView const&srcBuffer, ox::BufferView const &srcBuffer,
ox::StringViewCR dstTypeName, ox::StringViewCR dstTypeName,
int const dstTypeVersion) noexcept { int const dstTypeVersion) noexcept {
OX_REQUIRE(hdr, readAssetHeader(srcBuffer)); OX_REQUIRE(hdr, readAssetHeader(srcBuffer));

View File

@@ -6,7 +6,7 @@
namespace keel { namespace keel {
TypeStore::TypeStore(ox::FileSystem &fs, ox::StringView descPath) noexcept: TypeStore::TypeStore(ox::FileSystem &fs, ox::StringViewCR descPath) noexcept:
m_fs(fs), m_fs(fs),
m_descPath(descPath) { m_descPath(descPath) {
} }

View File

@@ -25,7 +25,7 @@ static std::map<ox::StringView, ox::Error(*)()> tests = {
}, },
}; };
int main(int argc, char const **argv) { int main(int const argc, char const **argv) {
int retval = -1; int retval = -1;
if (argc > 0) { if (argc > 0) {
auto const args = ox::Span{argv, static_cast<size_t>(argc)}; auto const args = ox::Span{argv, static_cast<size_t>(argc)};