From ff99a5df4c5a3265d215afa4b937fbb95a55b96c Mon Sep 17 00:00:00 2001 From: Ben Bridle Date: Thu, 29 May 2025 12:18:16 +1200 Subject: Initial commit --- src/formats/clang.rs | 10 ++++++++++ src/formats/mod.rs | 23 +++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/formats/clang.rs create mode 100644 src/formats/mod.rs (limited to 'src/formats') diff --git a/src/formats/clang.rs b/src/formats/clang.rs new file mode 100644 index 0000000..524b501 --- /dev/null +++ b/src/formats/clang.rs @@ -0,0 +1,10 @@ +pub fn format_clang(bytecode: &[u8]) -> Vec { + let mut output = String::new(); + for chunk in bytecode.chunks(16) { + for byte in chunk { + output.push_str(&format!("0x{byte:02X}, ")); + } + output.push('\n'); + } + return output.into_bytes(); +} diff --git a/src/formats/mod.rs b/src/formats/mod.rs new file mode 100644 index 0000000..79b1c51 --- /dev/null +++ b/src/formats/mod.rs @@ -0,0 +1,23 @@ +mod clang; +pub use clang::*; + +use crate::*; + + +#[derive(Clone, Copy, PartialEq)] +pub enum Format { + Raw, + Source, + Clang, +} + +impl Format { + pub fn from_str(string: &str) -> Self { + match string { + "raw" => Self::Raw, + "source" => Self::Source, + "c" => Self::Clang, + _ => fatal!("Unknown format '{string}', expected 'raw', 'c', or 'source'"), + } + } +} -- cgit v1.2.3-70-g09d2