Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Data(u8);
- fn f(mut v: Vec<Data>) -> Option<Data> {
- let a = v.iter().position(a);
- let index = match a {
- Some(i) => i,
- None => v.iter().position(b)?
- };
- Some(v.swap_remove(index))
- }
- fn a(d: &Data) -> bool {
- match d {
- Data(0) => true,
- _ => false
- }
- }
- fn b(d: &Data) -> bool {
- match d {
- Data(1) => true,
- _ => false
- }
- }
- fn main() {
- let v = vec![Data(1), Data(2), Data(3), Data(0)];
- f(v);
- println!("done!");
- }
Add Comment
Please, Sign In to add comment