Initial commit
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
[package]
|
||||
name = "demo"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
serde = { version = "1.0.228", features = ["derive"] }
|
||||
serde-xml-rs = "0.8.2"
|
||||
serde_json = "1.0.149"
|
||||
serde_yaml = "0.9.34"
|
||||
@@ -0,0 +1,45 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
// #[serde(rename_all = "camelCase")]
|
||||
// #[serde(rename_all = "PascalCase")]
|
||||
enum Access {
|
||||
Guest { vip: bool },
|
||||
Normal,
|
||||
Admin,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
// #[serde(rename_all = "camelCase")]
|
||||
// #[serde(rename_all = "PascalCase")]
|
||||
struct User {
|
||||
// #[serde(rename = "@firstName")]
|
||||
first_name: String,
|
||||
// #[serde(rename = "@lastName")]
|
||||
last_name: String,
|
||||
// #[serde(skip)]
|
||||
// #[serde(rename = "@email")]
|
||||
email: String,
|
||||
access: Access,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let content = std::fs::read_to_string("user.json").unwrap();
|
||||
let user: User = serde_json::from_str(&content).unwrap();
|
||||
|
||||
println!("{user:#?}");
|
||||
|
||||
// let tim = User {
|
||||
// first_name: "Tim".into(),
|
||||
// last_name: "Huizinga".into(),
|
||||
// email: "tim@huizinga.dev".into(),
|
||||
// access: Access::Normal,
|
||||
// // access: Access::Guest { vip: true },
|
||||
// };
|
||||
//
|
||||
// println!("{}", serde_json::to_string_pretty(&tim).unwrap());
|
||||
//
|
||||
// println!("{}", serde_yaml::to_string(&tim).unwrap());
|
||||
//
|
||||
// println!("{}", serde_xml_rs::to_string(&tim).unwrap());
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"first_name": "Sebastiano",
|
||||
"last_name": "Tronto",
|
||||
"email": "sebastiano@tronto.net",
|
||||
"access": "Normal"
|
||||
}
|
||||
Reference in New Issue
Block a user