Guest User

Untitled

a guest
Jun 25th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. pub enum InnerStream {
  2. Root,
  3. Transaction { v: Vec<u32>, parent: Box<InnerStream> },
  4. }
  5.  
  6. impl InnerStream {
  7. pub fn rollback(self) -> InnerStream {
  8. match self {
  9. InnerStream::Transaction { v: _v, parent } => {
  10. match *parent {
  11. InnerStream::Root => InnerStream::Root,
  12. InnerStream::Transaction { v, parent: parent_parent } =>
  13. InnerStream::Transaction { v, parent: parent_parent }
  14. }
  15. },
  16. InnerStream::Root { .. } => panic!("Cannot rollback root stream."),
  17. }
  18. }
  19. }
  20.  
  21. error[E0382]: use of collaterally moved value: `(parent as InnerStream::Transaction).parent`
  22. --> src/main.rs:12:59
  23. |
  24. 12 | InnerStream::Transaction { v, parent: parent_parent } =>
  25. | - ^^^^^^^^^^^^^ value used here after move
  26. | |
  27. | value moved here
  28. |
  29. = note: move occurs because the value has type `std::vec::Vec<u32>`, which does not implement the `Copy` trait
  30.  
  31. error: aborting due to previous error
Add Comment
Please, Sign In to add comment