Skip to content

Instantly share code, notes, and snippets.

Created June 24, 2016 05:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save anonymous/837232c93a7959fb636995ca54995faa to your computer and use it in GitHub Desktop.
Save anonymous/837232c93a7959fb636995ca54995faa to your computer and use it in GitHub Desktop.
Shared via Rust Playground
struct NoLifetime {}
struct WithLifetime <'a> {
pub field: &'a i32
}
fn main() {
let mut some_val = NoLifetime{};
borrow_mut_function(&mut some_val);
borrow_mut_function(&mut some_val);//Borrowing as mutable for the second time.
let num = 5;
let mut life_val = WithLifetime{field:&num};
borrow_lifetime(&mut life_val);
borrow_lifetime(&mut life_val);//Borrowing as mutable for the second time.
let num_again = borrow_lifetime(&mut life_val); //Borrow, assign lifetime result
borrow_lifetime(&mut life_val);
}
fn borrow_mut_function(val_in: &mut NoLifetime) -> String {
"abc".to_string()
}
fn borrow_lifetime<'a>(val_in: &'a mut WithLifetime) -> &'a i32 {
val_in.field
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment