Skip to content

Instantly share code, notes, and snippets.

Created April 1, 2017 16:07
Show Gist options
  • Save anonymous/023b28325330fba5829b3fa516aab76b to your computer and use it in GitHub Desktop.
Save anonymous/023b28325330fba5829b3fa516aab76b to your computer and use it in GitHub Desktop.
Shared via Rust Playground
#[derive(Debug)]
struct Person {
name: String,
never_change_this: i32,
}
impl Person {
fn new(name: String, never_change_this: i32) -> Person {
Person {
name: name,
never_change_this: never_change_this,
}
}
fn name(&self) -> &str {
&self.name
}
fn name_mut(&mut self) -> &mut String {
&mut self.name
}
fn never_change_this(&self) -> &i32 {
&self.never_change_this
}
}
fn main() {
let mut person = Person::new(String::from("Eddy"), 12);
println!("After Construction\n{:#?}", person);
*person.name_mut() = String::from("Bob");
println!("After Name Change\n{:#?}", person);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment