macro_rules! use_self {
(
impl $ty:ident {
fn func(&$this:ident) {
[fields($($field:ident)*)]
}
) => (
impl $ty {
fn func(&$this) {
let $ty { $($field),* } = $this;
)