Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.41 KB | None | 0 0
  1. struct Cont<'a, T>{
  2. field: Option<&'a T>
  3. }
  4.  
  5. static CONT: Cont<'static, Vec<u8>>=Cont{field:None};
  6.  
  7. fn get<'a, 'b, T>(_: &'b Cont<'a, T>, field: &'a T)->&'b T{
  8. field
  9. }
  10.  
  11. fn extend<'a>(x:&'a Vec<u8>) -> &'static Vec<u8>{
  12. let f:fn(_, field:&'a Vec<u8>)-> &'static Vec<u8> = get;
  13. f(&CONT, x)
  14. }
  15.  
  16. fn main(){
  17. let v = vec![255;1000000];
  18. let r: &'static Vec<u8> = extend(&v);
  19. drop(v);
  20. dbg!(r.last());
  21. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement