From c89d10c57d7462cf447c2a1644311b24ed78c890 Mon Sep 17 00:00:00 2001 From: Dnomd343 Date: Wed, 2 Nov 2022 10:25:44 +0800 Subject: [PATCH] remove: to-json program --- to-json/Cargo.lock | 91 --------------------------------------------- to-json/Cargo.toml | 11 ------ to-json/src/main.rs | 57 ---------------------------- 3 files changed, 159 deletions(-) delete mode 100644 to-json/Cargo.lock delete mode 100644 to-json/Cargo.toml delete mode 100644 to-json/src/main.rs diff --git a/to-json/Cargo.lock b/to-json/Cargo.lock deleted file mode 100644 index 71b6233..0000000 --- a/to-json/Cargo.lock +++ /dev/null @@ -1,91 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "indexmap" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" -dependencies = [ - "autocfg", - "hashbrown", -] - -[[package]] -name = "itoa" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" - -[[package]] -name = "ryu" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" - -[[package]] -name = "serde" -version = "1.0.147" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" - -[[package]] -name = "serde_json" -version = "1.0.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_yaml" -version = "0.9.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d232d893b10de3eb7258ff01974d6ee20663d8e833263c99409d4b13a0209da" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - -[[package]] -name = "to-json" -version = "0.1.0" -dependencies = [ - "serde_json", - "serde_yaml", - "toml", -] - -[[package]] -name = "toml" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" -dependencies = [ - "serde", -] - -[[package]] -name = "unsafe-libyaml" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e5fa573d8ac5f1a856f8d7be41d390ee973daf97c806b2c1a465e4e1406e68" diff --git a/to-json/Cargo.toml b/to-json/Cargo.toml deleted file mode 100644 index 2fddb92..0000000 --- a/to-json/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -[package] -name = "to-json" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -serde_json = "1.0.86" -serde_yaml = "0.9.14" -toml = "0.5.9" diff --git a/to-json/src/main.rs b/to-json/src/main.rs deleted file mode 100644 index 07bbabf..0000000 --- a/to-json/src/main.rs +++ /dev/null @@ -1,57 +0,0 @@ -use std::io::Read; -use serde_json as json; -use serde_yaml as yaml; - -const FILE_ERROR: i32 = 1; // file open error -const PARSE_ERROR: i32 = 2; // parser error - -enum Format { - JSON(json::Value), - YAML(yaml::Value), - TOML(toml::Value), -} - -fn parser(content: &str) -> Option { - if let Ok(data) = json::from_str::(content) { // try JSON format - return Some(Format::JSON(data)); - } - if let Ok(data) = toml::from_str::(content) { // try TOML format - return Some(Format::TOML(data)); - } - if let Ok(data) = yaml::from_str::(content) { // try YAML format - return Some(Format::YAML(data)); - } - return None; // parse failed -} - -fn to_json(content: &str) -> String { // convert to JSON format - match parser(content) { - Some(data) => match data { - Format::JSON(dat) => json::to_string(&dat).unwrap(), - Format::YAML(dat) => json::to_string(&dat).unwrap(), - Format::TOML(dat) => json::to_string(&dat).unwrap(), - }, - None => std::process::exit(PARSE_ERROR), // error exit - } -} - -fn read_file(path: &str) -> String { // read file content - match std::fs::File::open(path) { - Ok(mut file) => { // file open success - let mut content = String::new(); - file.read_to_string(&mut content).unwrap(); // get file content - content - }, - Err(_) => std::process::exit(FILE_ERROR), // read failed - } -} - -fn main() { - let args: Vec = std::env::args().collect(); // input arguments - if args.len() < 2 { // missing arguments - println!("usage: toJSON [file]"); - std::process::exit(0); - } - let content = read_file(&args[1].clone()[..]); // read file content - println!("{}", to_json(&content[..])); // convert to JSON format -}