Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.39 KB | None | 0 0
  1. #[derive(Debug)]
  2. struct Cell<T>{value: T}
  3.  
  4. impl<T> Cell<T> {
  5. fn set(&self, v: T) {
  6. use std::ptr;
  7.  
  8. let p = &self.value as *const _ as *mut _;
  9. unsafe {
  10. ptr::write(p, v);
  11. }
  12. }
  13. }
  14.  
  15.  
  16. fn evil<'a>(c: &Cell<&'a i32>) {
  17. let drop_value = 42;
  18. c.set(&drop_value);
  19. }
  20.  
  21. fn main() {
  22. let c = Cell { value: &10 };
  23. evil(&c);
  24. println!("{:?}", c);
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement