# Meeting 2022-11-01
## Leftover discussion on RCU field projection:
```rust=
fn writer(data: &RcuLock<Mutex<Test>>) {
let mut guard = data.lock();
// guard does not give `&mut Test`!
// Use projection to get a mutable reference
*project!(&mut guard => b) = 10;
let _: &Rcu = project!(&mut guard => a); // This will only give an immutable reference
let _: &Rcu = project!(&*data => a); // Still able to get an immutable reference while mutex is locked.
drop(guard);
// Read can be done directly
pr_info!("Value: {}\n", data.lock().b);
}
```
Boqun: Maybe change the grammer to `project!(&mut guard->b)`?
Benno: Doesn't work with a declarative macro. We could use a proc-macro (without syn) however.
Gary: If we have postfix macro this could look like `(&mut guard).proj!(a)`.
## Misc discussion
Miguel: https://lore.kernel.org/lkml/CANiq72nfpdhPgEgWbz2T7C3GOk94mPbcqfvXTp3Lp=qRvtON9g@mail.gmail.com