Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::cell::RefCell;
- struct Foo<'a> {
- x: RefCell<Option<&'a mut [u8]>>
- }
- impl<'a> Foo<'a> {
- fn set(&self, arr: &'a mut [u8]) {
- *self.x.borrow_mut() = Some(arr);
- }
- fn remove(&self) -> &'a mut [u8] {
- self.x.borrow_mut().take().unwrap()
- }
- }
- pub fn main(){
- let foo = Foo {x: RefCell::new(None)};
- let mut arr = Vec::with_capacity(100).into_boxed_slice();
- {
- foo.set(&mut arr);
- // тут куча кода, который может при надобности обращаться
- // к полю массиву в структуре foo
- foo.get();
- }
- }
Add Comment
Please, Sign In to add comment