Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Handler<'a> {
- neovim: &'a mut Neovim
- }
- struct Session {
- handler: Option<Handler>
- }
- struct Neovim {
- session: Session
- }
- fn main() {
- let session = Session {handler: None};
- let neovim = Neovim {session: session};
- let handler = Handler {neovim: &mut neovim};
- // So far so good..
- // uh oh borrow while a mutable borrow on line 17 is out..
- neovim.session.start_event_loop(handler);
- // Maybe we could try this..
- /*
- struct Handler {
- neovim: RefCell<Neovim>
- }
- ...
- // Does not work
- let neovim = RefCell::New(Neovim {session: session});
- let handler = Handler {neovim}
- neovim.session.start_event_loop(handler);
- // Also Does not work
- let neovim = RefCell::New(Neovim {session: session});
- let handler = Handler {neovim.borrow()}
- neovim.session.start_event_loop(handler);
- // Also Does not work
- let neovim = RefCell::New(Neovim {session: session});
- let handler = Handler {neovim.borrow_mut()}
- neovim.session.start_event_loop(handler);
- // Also Does not work
- let neovim = Arc::new(Mutex::new(RefCell::New(Neovim {session: session})));
- let handler = Handler {neovim}
- neovim.session.start_event_loop(handler);
- */
- }
Add Comment
Please, Sign In to add comment