[−][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. |
| unby | The territory. |