Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/etra0/lazy-re


https://github.com/etra0/lazy-re

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

# Lazy-RE

A simple proc macro for the lazy reverse engineers.
It basically creates the padding for you.

```rust
#[repr(C, packed)]
#[lazy_re]
struct Lights {
#[lazy_re(offset = 0x10)]
x: f32,
y: f32,
z: f32
}

#[repr(C, packed)]
#[lazy_re]
struct PlayerEntity {
#[lazy_re(offset = 0x48)]
light: Lights,

#[lazy_re(offset = 0x90)]
player_x: f32,
player_y: f32,
player_z: f32,
}
```

That would create the padding for the `Light` struct at the beginning, i.e.
the `x` field will be at the offset `0x10`, and the rest is filled with `[u8;
0x10]`.

Similarly, the PlayerEntity will have padding until the `Light` struct, and
then it'll pad between the light and the player position, doing the math for
you.