/*
 * Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
 */

#pragma once

#include <ox/claw/claw.hpp>
#include <ox/fs/fs.hpp>
#include <ox/model/typestore.hpp>

namespace nostalgia::core {

class TypeStore: public ox::TypeStore {
	private:
		ox::FileSystem *m_fs = nullptr;

	public:
		constexpr explicit TypeStore(ox::FileSystem *fs) noexcept: m_fs(fs) {
		}

	protected:
		ox::Result<ox::UniquePtr<ox::DescriptorType>> loadDescriptor(const ox::String &name, int version) noexcept override;
};

}
