diff options
author | Adam Carpenter <53hornet@gmail.com> | 2019-03-27 15:32:37 -0400 |
---|---|---|
committer | Adam Carpenter <53hornet@gmail.com> | 2019-03-27 15:32:37 -0400 |
commit | 67cdcc2e12118becb823e20a40cc2687f2b8425a (patch) | |
tree | ed92c3234b89079e6d4cf36f5e80c5ffa79def48 /meap/meap-code/ch4/ch4-rc-refcell-groundstation.rs | |
parent | e25482fca375d318a39c3b54db396b0db6e0b263 (diff) | |
download | learning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.tar.xz learning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.zip |
Started Rust in Action MEAP.
Diffstat (limited to 'meap/meap-code/ch4/ch4-rc-refcell-groundstation.rs')
-rw-r--r-- | meap/meap-code/ch4/ch4-rc-refcell-groundstation.rs | 31 |
1 files changed, 31 insertions, 0 deletions
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<RefCell<GroundStation>> = 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);
+}
|