I have a number of I/O mapped registers that look like: struct Dev { .. // u32 fields }
pub static Dev0 : *mut Dev = 0xsomeaddr as *mut Dev; with macro-generated getters and setters: pub fn $getter_name(&self) -> u32 { unsafe { volatile_load(&(self.$reg)) } } unfortunately, calling a getter is calling a method on *Reg, which is unsafe and looks like: unsafe { (*Dev0).SOME_REG() }; is there any way to simplify the syntax, hopefully to simple Dev0.SOME_REG()? I'm ok with any "unsafe" tricks including transmuting it to &Dev (that doesn't seem to be possible though), as the getter/setter methods are always safe in this scenario. -- Sincerely, Vladimir "Farcaller" Pouzanov http://farcaller.net/
_______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev