Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
2077: Add TakeCell::get_mut function r=phil-levis a=daboross ### Pull Request Overview This adds `TakeCell::get_mut`, a function with the signature `fn get_mut(&mut self) -> Option<&mut T>`. Specifically, it bypasses the Cell nature of take_cell for when you already have access to an `&mut TakeCell`. This is entirely safe, and works similarly to the corresponding method in `Cell`, `Cell::get_mut`. It's made safe by the fact that the returned value is lifetime bound to the mutable borrow of the `TakeCell` itself, not to `'a` - and thus, requires no new unsafe code to implement. This was useful for an odd interaction with the rubble interface when implementing tock_rubble - it needs to retrieve an `&mut [u8]` multiple times safely, and then also use that buffer as an `&'static mut [u8]` which can be taken out. Thus a `TakeCell`, with the addition of this `get_mut` method, works well. ### Testing Strategy CI ### TODO or Help Wanted ### Documentation Updated - [x] Updated the relevant files in `/docs`, or no updates are required. ### Formatting - [x] Ran `make prepush`. Co-authored-by: David Ross <David.Ross@wdc.com>
- Loading branch information