rust_var_zeroed 0.1.0

Create zeroed structs with rust without Default trait
Documentation
  • Coverage
  • 0%
    0 out of 3 items documented0 out of 0 items with examples
  • Size
  • Source code size: 3.64 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.02 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • Documentation
  • Morglod/rust_var_zeroed
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • Morglod

rust_var_zeroed

Create structs with rust without Default trait

Similar to C/C++ (except var_stack_zeroed is zeroed):

struct MyStruct {
    int a: i32;
    MyStruct* ptr;
};

int main() {
    MyStruct my_var;
    memset(&my_var, 0, sizeof MyStruct);

    MyStruct* my_var2 = (MyStruct*)malloc(sizeof MyStruct);
    memset(&my_var2, 0, sizeof MyStruct);

    return 0;
}
struct MyStruct {
    a: i32,
    ptr: *mut MyStruct,
}

fn main() {
    // let mut my_var: &mut MyStruct
    var_stack_zeroed!(my_var, MyStruct);
    println!("{:?}", my_var.ptr); // -> 0x0

    // let mut my_var2: *mut MyStruct
    var_heap_zeroed!(my_var2, MyStruct);
    println!("{}", unsafe { (*my_var2).a }); // -> 0
}

Waiting for unstable Box features:
https://doc.rust-lang.org/beta/std/boxed/struct.Box.html#method.new_uninit