about summary refs log tree commit diff
path: root/users/wpcarro/scratch/rust/json/src
diff options
context:
space:
mode:
Diffstat (limited to 'users/wpcarro/scratch/rust/json/src')
-rw-r--r--users/wpcarro/scratch/rust/json/src/main.rs89
1 files changed, 0 insertions, 89 deletions
diff --git a/users/wpcarro/scratch/rust/json/src/main.rs b/users/wpcarro/scratch/rust/json/src/main.rs
deleted file mode 100644
index 6481224fffe7..000000000000
--- a/users/wpcarro/scratch/rust/json/src/main.rs
+++ /dev/null
@@ -1,89 +0,0 @@
-use serde::{Deserialize, Serialize};
-use serde_json::{json, Value};
-
-// From the serde_json docs:
-//
-// > There are three common ways that you might find yourself needing to work
-// > with JSON data in Rust.
-// >
-// > 1. As text data. An unprocessed string of JSON data that you receive on an
-// >    HTTP endpoint, read from a file, or prepare to send to a remote server.
-// > 2. As an untyped or loosely typed representation. Maybe you want to check
-// >    that some JSON data is valid before passing it on, but without knowing
-// >    the structure of what it contains. Or you want to do very basic
-// >    manipulations like insert a key in a particular spot.
-// > 3. As a strongly typed Rust data structure. When you expect all or most of
-// >    your data to conform to a particular structure and want to get real work
-// >    done without JSON’s loosey-goosey nature tripping you up.
-//
-// So let's take a look at all three...
-
-////////////////////////////////////////////////////////////////////////////////
-// Types
-////////////////////////////////////////////////////////////////////////////////
-
-#[derive(Serialize, Deserialize, Debug)]
-struct Person {
-    fname: String,
-    lname: String,
-    age: u8,
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// Functions
-////////////////////////////////////////////////////////////////////////////////
-
-// 1) Reading/writing from/to plain text.
-//    TL;DR:
-//    - read:  serde_json::from_str(data)
-//    - write: x.to_string()
-fn one() {
-    let data = json!({
-        "fname": "William",
-        "lname": "Carroll",
-        "age": 30,
-    })
-    .to_string();
-
-    println!("result: {:?}", data);
-}
-
-// 2) Parse into a loosely typed representation; mutate it; serialize it back.
-//    TL;DR:
-//    - read:  serde_json::from_str(data)
-//    - write: x.to_string()
-fn two() {
-    let data = r#"{"fname":"William","lname":"Carroll","age":30}"#;
-
-    let mut parsed: Value = serde_json::from_str(data).unwrap();
-    parsed["fname"] = json!("Norm");
-    parsed["lname"] = json!("Macdonald");
-    parsed["age"] = json!(61);
-
-    let result = parsed.to_string();
-    println!("result: {:?}", result);
-}
-
-// 3) Parse into a strongly typed structure.
-//    TL;DR:
-//    - read:  serde_json::from_str(data)
-//    - write: serde_json::to_string(x).unwrap()
-fn three() {
-    let data = r#"{"fname":"William","lname":"Carroll","age":30}"#;
-
-    let mut read: Person = serde_json::from_str(data).unwrap();
-    read.fname = "Norm".to_string();
-    read.lname = "Macdonald".to_string();
-    read.age = 61;
-
-    let write = serde_json::to_string(&read).unwrap();
-    println!("result: {:?}", write);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// Main
-////////////////////////////////////////////////////////////////////////////////
-
-fn main() {
-    three()
-}