cs2-dumper/include/builder/rust_file_builder.hpp

27 lines
946 B
C++
Raw Normal View History

2023-09-08 21:13:40 +08:00
#pragma once
namespace builder {
class RustFileBuilder : public IFileBuilder {
public:
std::string get_extension() noexcept override {
return "rs";
}
void write_top_level(std::ofstream& output) noexcept override {
2023-09-09 10:07:27 +08:00
output << "#![allow(non_snake_case, non_upper_case_globals)]\n\n";
2023-09-08 21:13:40 +08:00
}
void write_namespace(std::ofstream& output, const std::string& namespace_name) noexcept override {
output << "pub mod " << namespace_name << " {\n";
}
void write_variable(std::ofstream& output, const std::string& variable_name, const std::uint64_t variable_value) noexcept override {
output << " pub const " << variable_name << ": usize = 0x" << std::hex << variable_value << ";\n";
}
void write_closure(std::ofstream& output, const bool eof) noexcept override {
output << (!eof ? "}\n\n": "}");
}
};
}