We'd like to see this in Rust one day:
#[derive(PartialEq, Eq)]
struct X {
foo: i32,
bar: i32,
}
#[derive(PartialEq, Eq)]
struct Y {
bar: i32,
baz: i32,
}
let y = Y { bar: 3, baz: 5 }
let x = X { bar: 1, Y { bar: foo, ..: _ }: y };
assert_eq!(x, X { foo: 3, bar: 1 });
This would be basically a merger of FRUs with struct unpacking. It's basically sugar tho, as you can do this today:
let y = Y { bar: 3, baz: 5 }
let Y { bar: y_bar, baz: y_baz } = y;
drop(y_baz);
let x = X { bar: 1, foo: y_bar };
but it would make sense if we ever got subslice subpatterns (from Uh, what ever happened to subslice patterns? - #7 by Soni )