deimos-lang/src/vm/util.rs
2024-11-29 17:01:43 -06:00

27 lines
930 B
Rust

#[macro_export]
macro_rules! get_32_le {
( $bytes: expr, $base: expr, $offset: literal, $T: ident ) => {
$bytes[$base + $offset] as $T
+ (($bytes[$base + $offset + 1] as $T) << 8)
+ (($bytes[$base + $offset + 2] as $T) << 16)
+ (($bytes[$base + $offset + 3] as $T) << 24)
};
}
#[macro_export]
macro_rules! get_64_le {
( $bytes: expr, $base: expr, $offset: literal, $T: ident ) => {
$bytes[$base + $offset] as $T
+ (($bytes[$base + $offset + 1] as $T) << 8)
+ (($bytes[$base + $offset + 2] as $T) << 16)
+ (($bytes[$base + $offset + 3] as $T) << 24)
+ (($bytes[$base + $offset + 4] as $T) << 32)
+ (($bytes[$base + $offset + 5] as $T) << 40)
+ (($bytes[$base + $offset + 6] as $T) << 48)
+ (($bytes[$base + $offset + 7] as $T) << 56)
};
}
pub use get_32_le;
pub use get_64_le;