c2rs 0.1.2

C struct to Rust struct
Documentation
# c2rs 

This is a macro that converts the `struct` of the `c` language into a `rust struct`

[![Crates.io][crates-badge]][crates-url]
[![MIT licensed][mit-badge]][mit-url]

[crates-badge]: https://img.shields.io/crates/v/c2rs.svg
[crates-url]: https://crates.io/crates/c2rs
[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
[mit-url]: https://github.com/editso/c2rs/blob/master/LICENSE

# use

```
// Cargo.toml

[dependencies]
c2rs = "0.1.2"

```

# Example

```
fn test(){
    use c2rs::c2rs_def;

    type DWORD = u32;
    const SIZE: usize = 10;

    c2rs_def!(
        struct A{
            DWORD var1;
            DWORD var2;
            union {
                DWORD var4;
                DWORD var5;   
            }var3;
            
            struct {
                u8 var7;
            }var6;

            DWORD array[SIZE];
        };
        
        struct B{
            u8 var1;
        };
        
        // ....
    );
    
    let mut buffer = [1u8; 1024];
    
    unsafe{
        let mut buf = A::from_mut_bytes(buffer.as_mut_ptr());
        let buf = buf.as_mut().unwrap();
        buf.var1 = 10;
        
        assert_eq!(10, buf.var1);
        assert_eq!(10, buffer[0]);
        
        let mut b = B::from_mut_bytes(buffer.as_mut_ptr()).as_mut().unwrap();
        
        assert_eq!(10, b.var1);
    
    }
}
```