We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Register
Register trait allows reading and writing any pointer in safe code which is unsound.
Example:
use ruduino::Register; struct Unsound; impl Register for Unsound { type T = u8; const ADDRESS: *mut Self::T = core::ptr::null_mut(); // default implementations of `write`, `read`, `set_musk_raw`, `toggle_raw`, // `is_mask_set_raw` and `is_clear_raw` dereference `Self::ADDRESS` // (other methods also depend on them) } fn main() { println!("{}", Unsound::read()); }
(for me in debug it produces Process finished with exit code 139 (interrupted by signal 11: SIGSEGV) and in the release mode it prints 0)
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
0
Possible solutions:
unsafe
The text was updated successfully, but these errors were encountered:
Yeah that should definitely be an unsafe trait. Maybe also sealed as no one should be able to implement it out of the library.
Sorry, something went wrong.
No branches or pull requests
Register
trait allows reading and writing any pointer in safe code which is unsound.Example:
(for me in debug it produces
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
and in the release mode it prints0
)Possible solutions:
Register
traitunsafe
The text was updated successfully, but these errors were encountered: