Guest User

Untitled

a guest
Dec 10th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.49 KB | None | 0 0
  1. struct Data(u8);
  2.  
  3. fn f(mut v: Vec<Data>) -> Option<Data> {
  4. let a = v.iter().position(a);
  5. let index = match a {
  6. Some(i) => i,
  7. None => v.iter().position(b)?
  8. };
  9. Some(v.swap_remove(index))
  10. }
  11.  
  12. fn a(d: &Data) -> bool {
  13. match d {
  14. Data(0) => true,
  15. _ => false
  16. }
  17. }
  18.  
  19. fn b(d: &Data) -> bool {
  20. match d {
  21. Data(1) => true,
  22. _ => false
  23. }
  24. }
  25.  
  26. fn main() {
  27. let v = vec![Data(1), Data(2), Data(3), Data(0)];
  28. f(v);
  29. println!("done!");
  30. }
Add Comment
Please, Sign In to add comment