37 lines
1.1 KiB
Rust
37 lines
1.1 KiB
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)
|
|
};
|
|
}
|
|
|
|
#[macro_export]
|
|
macro_rules! push_bytes {
|
|
( $dest: expr, $src: expr ) => {
|
|
for b in $src {
|
|
$dest.push(b);
|
|
}
|
|
};
|
|
}
|
|
|
|
pub use get_32_le;
|
|
pub use get_64_le;
|
|
pub use push_bytes;
|