From 67cdcc2e12118becb823e20a40cc2687f2b8425a Mon Sep 17 00:00:00 2001 From: Adam Carpenter <53hornet@gmail.com> Date: Wed, 27 Mar 2019 15:32:37 -0400 Subject: Started Rust in Action MEAP. --- meap/meap-code/ch4/ch4-rc-refcell-groundstation.rs | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 meap/meap-code/ch4/ch4-rc-refcell-groundstation.rs (limited to 'meap/meap-code/ch4/ch4-rc-refcell-groundstation.rs') diff --git a/meap/meap-code/ch4/ch4-rc-refcell-groundstation.rs b/meap/meap-code/ch4/ch4-rc-refcell-groundstation.rs new file mode 100644 index 0000000..d0e27ee --- /dev/null +++ b/meap/meap-code/ch4/ch4-rc-refcell-groundstation.rs @@ -0,0 +1,31 @@ +use std::rc::Rc; +use std::cell::RefCell; + +#[derive(Debug)] +struct GroundStation { + radio_freq: f64 // Mhz +} + +fn main() { + let base: Rc> = Rc::new(RefCell::new( + GroundStation { + radio_freq: 87.65 + } + )); + + println!("base: {:?}", base); + + { // introduce a new scope + let mut base_2 = base.borrow_mut(); + base_2.radio_freq -= 12.34; + println!("base_2: {:?}", base_2); + } + + println!("base: {:?}", base); + + let mut base_3 = base.borrow_mut(); + base_3.radio_freq += 43.21; + + println!("base: {:?}", base); + println!("base_3: {:?}", base_3); +} -- cgit v1.2.3