Guest User

Untitled

a guest
Jun 20th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.50 KB | None | 0 0
  1. #![feature(generators)]
  2. #![feature(generator_trait)]
  3.  
  4. use std::marker::PhantomData;
  5. use std::ops::Generator;
  6.  
  7. trait Trait: 'static { }
  8.  
  9. struct Index<T: ?Sized = dyn Trait> {
  10. id: i32, ty: PhantomData<T>
  11. }
  12.  
  13. fn new_index() -> Index { Index { id: 10, ty: PhantomData } }
  14.  
  15. fn with_ctx<F: FnOnce(&mut i32) -> T, T>(f: F) -> T {
  16. let mut ctx = 123;
  17. f(&mut ctx)
  18. }
  19.  
  20. fn accept_gen<G: Generator>(g: G) { }
  21.  
  22. fn main() {
  23. accept_gen(static move || {
  24. let poll = with_ctx(|ctx| new_index());
  25. yield 20;
  26. });
  27. }
Add Comment
Please, Sign In to add comment