From 7e8ee5ed9cad6484e9f13f81731b102ced58402e Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Tue, 9 Jul 2019 15:14:04 -0400 Subject: Init. --- meap/meap-code/ch4/ch4-rc-refcell-groundstation.rs | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 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 100755 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