[−][src]Crate plutonium
Helping you make your programs less safe.
You can learn more about plutonium
at the Rust Security Advisory Database.
Usage
Add plutonium
to your Cargo.toml
:
[dependencies]
plutonium = "*"
and go:
use plutonium::*; #[safe] fn super_safe(x: f32) -> i32 { std::mem::transmute::<f32, i32>(x) } #[safe] unsafe fn deref_null() { *std::ptr::null::<u8>(); } println!("{:?}", super_safe(1.0)); deref_null();
use plutonium::optimize; let mut vec: Vec<u32> = (10000..=0).collect(); let mut vec2 = vec.clone(); vec.sort(); optimize! { vec2.sort(); }; assert_eq!(vec, vec2);
Roadmap:
- Disable
#![forbid(unsafe_code)]
- Add
#![forbid(safe_code)]
proc-macro lint
Macros
optimize | Apply extreme optimizations to your code (requires Rust 1.45 or later). |
Attribute Macros
safe | Turn unsafe code into "safe" code. |