diff options
Diffstat (limited to 'users')
-rw-r--r-- | users/wpcarro/scratch/rust/shell.nix | 2 | ||||
-rw-r--r-- | users/wpcarro/scratch/rust/src/main.rs | 3 | ||||
-rw-r--r-- | users/wpcarro/scratch/rust/src/rc/mod.rs | 12 |
3 files changed, 15 insertions, 2 deletions
diff --git a/users/wpcarro/scratch/rust/shell.nix b/users/wpcarro/scratch/rust/shell.nix index 064e7d8bb38a..98e2dbf4b29b 100644 --- a/users/wpcarro/scratch/rust/shell.nix +++ b/users/wpcarro/scratch/rust/shell.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ pkgs ? import <nixpkgs> { }, ... }: pkgs.mkShell { buildInputs = [ diff --git a/users/wpcarro/scratch/rust/src/main.rs b/users/wpcarro/scratch/rust/src/main.rs index 185e7236c5f6..671b33093050 100644 --- a/users/wpcarro/scratch/rust/src/main.rs +++ b/users/wpcarro/scratch/rust/src/main.rs @@ -3,6 +3,7 @@ use serde_json::{json, Value}; mod display; mod json; +mod rc; mod stdin; //////////////////////////////////////////////////////////////////////////////// @@ -10,5 +11,5 @@ mod stdin; //////////////////////////////////////////////////////////////////////////////// fn main() { - stdin::example(); + rc::example(); } diff --git a/users/wpcarro/scratch/rust/src/rc/mod.rs b/users/wpcarro/scratch/rust/src/rc/mod.rs new file mode 100644 index 000000000000..67251ca6aa9b --- /dev/null +++ b/users/wpcarro/scratch/rust/src/rc/mod.rs @@ -0,0 +1,12 @@ +// Playing around with Rust's "smart pointers". Starting off with a wrapper type +// that allows multiple readers (owners?) of some data. + +use std::rc::Rc; + +pub fn example() { + let five = Rc::new(5); + let x = Rc::clone(&five); + let y = Rc::clone(&five); + let z = Rc::clone(&five); + println!("result: {}", *x + *y + *z) +} |