diff options
Diffstat (limited to 'users')
-rw-r--r-- | users/wpcarro/scratch/rust/src/main.rs | 8 | ||||
-rw-r--r-- | users/wpcarro/scratch/rust/src/stdin/mod.rs | 22 |
2 files changed, 24 insertions, 6 deletions
diff --git a/users/wpcarro/scratch/rust/src/main.rs b/users/wpcarro/scratch/rust/src/main.rs index da9e3d3c637c..185e7236c5f6 100644 --- a/users/wpcarro/scratch/rust/src/main.rs +++ b/users/wpcarro/scratch/rust/src/main.rs @@ -3,16 +3,12 @@ use serde_json::{json, Value}; mod display; mod json; +mod stdin; //////////////////////////////////////////////////////////////////////////////// // Main //////////////////////////////////////////////////////////////////////////////// fn main() { - let john: display::Person = display::Person { - fname: "John".to_string(), - lname: "Cleese".to_string(), - age: 82, - }; - println!("Person: {}", john) + stdin::example(); } diff --git a/users/wpcarro/scratch/rust/src/stdin/mod.rs b/users/wpcarro/scratch/rust/src/stdin/mod.rs new file mode 100644 index 000000000000..4be95afa4547 --- /dev/null +++ b/users/wpcarro/scratch/rust/src/stdin/mod.rs @@ -0,0 +1,22 @@ +use std::io::Write; +use std::process::{Command, Stdio}; + +// Example of piping-in a string defined in Rust to a shell command. +pub fn example() { + let input = "Hello, world!"; + + let mut cat = Command::new("cat") + .stdin(Stdio::piped()) + .spawn() + .ok() + .unwrap(); + + cat.stdin + .take() + .unwrap() + .write_all(&input.as_bytes()) + .unwrap(); + + let output = cat.wait_with_output().unwrap(); + println!("{}", String::from_utf8_lossy(&output.stdout)); +} |