From 3e3e70d529d8c7d7c4d7bc4fefc9f109393b9245 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:19:43 +0200 Subject: Merging upstream version 1.69.0+dfsg1. Signed-off-by: Daniel Baumann --- vendor/toml/.cargo-checksum.json | 1 - vendor/toml/Cargo.lock | 101 -- vendor/toml/Cargo.toml | 49 - vendor/toml/LICENSE-APACHE | 201 --- vendor/toml/LICENSE-MIT | 25 - vendor/toml/README.md | 38 - vendor/toml/examples/decode.rs | 54 - vendor/toml/examples/enum_external.rs | 45 - vendor/toml/examples/toml2json.rs | 47 - vendor/toml/src/datetime.rs | 544 ------ vendor/toml/src/de.rs | 2262 ------------------------ vendor/toml/src/lib.rs | 180 -- vendor/toml/src/macros.rs | 462 ----- vendor/toml/src/map.rs | 595 ------- vendor/toml/src/ser.rs | 1859 ------------------- vendor/toml/src/spanned.rs | 168 -- vendor/toml/src/tokens.rs | 740 -------- vendor/toml/src/value.rs | 1081 ----------- vendor/toml/tests/enum_external_deserialize.rs | 258 --- 19 files changed, 8710 deletions(-) delete mode 100644 vendor/toml/.cargo-checksum.json delete mode 100644 vendor/toml/Cargo.lock delete mode 100644 vendor/toml/Cargo.toml delete mode 100644 vendor/toml/LICENSE-APACHE delete mode 100644 vendor/toml/LICENSE-MIT delete mode 100644 vendor/toml/README.md delete mode 100644 vendor/toml/examples/decode.rs delete mode 100644 vendor/toml/examples/enum_external.rs delete mode 100644 vendor/toml/examples/toml2json.rs delete mode 100644 vendor/toml/src/datetime.rs delete mode 100644 vendor/toml/src/de.rs delete mode 100644 vendor/toml/src/lib.rs delete mode 100644 vendor/toml/src/macros.rs delete mode 100644 vendor/toml/src/map.rs delete mode 100644 vendor/toml/src/ser.rs delete mode 100644 vendor/toml/src/spanned.rs delete mode 100644 vendor/toml/src/tokens.rs delete mode 100644 vendor/toml/src/value.rs delete mode 100644 vendor/toml/tests/enum_external_deserialize.rs (limited to 'vendor/toml') diff --git a/vendor/toml/.cargo-checksum.json b/vendor/toml/.cargo-checksum.json deleted file mode 100644 index fc3af5a18..000000000 --- a/vendor/toml/.cargo-checksum.json +++ /dev/null @@ -1 +0,0 @@ -{"files":{"Cargo.lock":"8b79835f7ab21184ac6f2ae2049f063d931c9e6b1b04456fc74442cc102e39a3","Cargo.toml":"6f08a9b830e6d0f5fa64e23e316f5f0dcc8695d215af060d373593ccce583797","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"9f9fabc5623932ee1ac3d4c7d00c01ce78d43e1b916844249b1991df28a58be0","examples/decode.rs":"5c1bb83eef7fdf41f7d7873db4681492ce181000669aadee8895ca21e85f0aed","examples/enum_external.rs":"360618cced5c6339afbbc8799df2c047aaeeb1fa7d840dc777c2ffd83871883e","examples/toml2json.rs":"b0256e8393f91633abaa5b5c1ce496b73efee14a81b51e4f242aae967eaf9548","src/datetime.rs":"bf3c49e818d52a85ee5762ca80ce5b0d3012b1760c2ae7daf79228316a5c5d82","src/de.rs":"8c8b5482fcfd8547f711220fa0c8d44dba58958018b7d9a6a711989946aeba0f","src/lib.rs":"7cfff3e3073b6890c679654d4e1104734d1388b21618dded989818db2cd28f1d","src/macros.rs":"81a7e1b7884714cb23af28e9415f3fe35395820edad7a534c98593d5c940ec0c","src/map.rs":"ffc5539c8884baea62ed0e2ea89b018797c5e2d285f778f1d0e124a69ec29ddc","src/ser.rs":"ca2c468b3b867d65c8d106eb4d4724b5799a20ae491db69628c7cd4a8b83d351","src/spanned.rs":"01b8776279c1ef3fe2e81188e3e8f672430220482c5765178b57dac78522b1b3","src/tokens.rs":"d2fbb19c3ec857b04612d05e07bdcb3aac98a19cba1338026238756ffdac276c","src/value.rs":"185ddf60a8e85472449b03e73f7353c3374f20cc720e32cdc33c750c2871a08b","tests/enum_external_deserialize.rs":"32515d5fa80e36efed6006da6514b5054c5c903960d9d884866d608ce9d23c35"},"package":"8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"} \ No newline at end of file diff --git a/vendor/toml/Cargo.lock b/vendor/toml/Cargo.lock deleted file mode 100644 index 1f4de004a..000000000 --- a/vendor/toml/Cargo.lock +++ /dev/null @@ -1,101 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -[[package]] -name = "autocfg" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" - -[[package]] -name = "indexmap" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712d7b3ea5827fcb9d4fda14bf4da5f136f0db2ae9c8f4bd4e2d1c6fde4e6db2" -dependencies = [ - "autocfg", -] - -[[package]] -name = "itoa" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" - -[[package]] -name = "proc-macro2" -version = "0.4.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" -dependencies = [ - "unicode-xid", -] - -[[package]] -name = "quote" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "ryu" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" - -[[package]] -name = "serde" -version = "1.0.98" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe5626ac617da2f2d9c48af5515a21d5a480dbd151e01bb1c355e26a3e68113" - -[[package]] -name = "serde_derive" -version = "1.0.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4d6115a3ca25c224e409185325afc16a0d5aaaabc15c42b09587d6f1ba39a5b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf540260cfee6da923831f4776ddc495ada940c30117977c70f1313a6130545" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "syn" -version = "0.15.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "734ecc29cd36e8123850d9bf21dfd62ef8300aaa8f879aabaa899721808be37c" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "toml" -version = "0.5.9" -dependencies = [ - "indexmap", - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "unicode-xid" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" diff --git a/vendor/toml/Cargo.toml b/vendor/toml/Cargo.toml deleted file mode 100644 index 2e30a900a..000000000 --- a/vendor/toml/Cargo.toml +++ /dev/null @@ -1,49 +0,0 @@ -# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO -# -# When uploading crates to the registry Cargo will automatically -# "normalize" Cargo.toml files for maximal compatibility -# with all versions of Cargo and also rewrite `path` dependencies -# to registry (e.g., crates.io) dependencies. -# -# If you are reading this file be aware that the original Cargo.toml -# will likely look very different (and much more reasonable). -# See Cargo.toml.orig for the original contents. - -[package] -edition = "2018" -name = "toml" -version = "0.5.9" -authors = ["Alex Crichton "] -description = """ -A native Rust encoder and decoder of TOML-formatted files and streams. Provides -implementations of the standard Serialize/Deserialize traits for TOML data to -facilitate deserializing and serializing Rust structures. -""" -homepage = "https://github.com/alexcrichton/toml-rs" -documentation = "https://docs.rs/toml" -readme = "README.md" -keywords = ["encoding"] -categories = [ - "config", - "encoding", - "parser-implementations", -] -license = "MIT/Apache-2.0" -repository = "https://github.com/alexcrichton/toml-rs" - -[dependencies.indexmap] -version = "1.0" -optional = true - -[dependencies.serde] -version = "1.0.97" - -[dev-dependencies.serde_derive] -version = "1.0" - -[dev-dependencies.serde_json] -version = "1.0" - -[features] -default = [] -preserve_order = ["indexmap"] diff --git a/vendor/toml/LICENSE-APACHE b/vendor/toml/LICENSE-APACHE deleted file mode 100644 index 16fe87b06..000000000 --- a/vendor/toml/LICENSE-APACHE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/vendor/toml/LICENSE-MIT b/vendor/toml/LICENSE-MIT deleted file mode 100644 index 39e0ed660..000000000 --- a/vendor/toml/LICENSE-MIT +++ /dev/null @@ -1,25 +0,0 @@ -Copyright (c) 2014 Alex Crichton - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. diff --git a/vendor/toml/README.md b/vendor/toml/README.md deleted file mode 100644 index 21dd1088a..000000000 --- a/vendor/toml/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# toml-rs - -[![Latest Version](https://img.shields.io/crates/v/toml.svg)](https://crates.io/crates/toml) -[![Documentation](https://docs.rs/toml/badge.svg)](https://docs.rs/toml) - -A [TOML][toml] decoder and encoder for Rust. This library is currently compliant -with the v0.5.0 version of TOML. This library will also likely continue to stay -up to date with the TOML specification as changes happen. - -[toml]: https://github.com/toml-lang/toml - -```toml -# Cargo.toml -[dependencies] -toml = "0.5" -``` - -This crate also supports serialization/deserialization through the -[serde](https://serde.rs) crate on crates.io. Currently the older `rustc-serialize` -crate is not supported in the 0.3+ series of the `toml` crate, but 0.2 can be -used for that support. - -# License - -This project is licensed under either of - - * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or - http://www.apache.org/licenses/LICENSE-2.0) - * MIT license ([LICENSE-MIT](LICENSE-MIT) or - http://opensource.org/licenses/MIT) - -at your option. - -### Contribution - -Unless you explicitly state otherwise, any contribution intentionally submitted -for inclusion in toml-rs by you, as defined in the Apache-2.0 license, shall be -dual licensed as above, without any additional terms or conditions. diff --git a/vendor/toml/examples/decode.rs b/vendor/toml/examples/decode.rs deleted file mode 100644 index 256069b35..000000000 --- a/vendor/toml/examples/decode.rs +++ /dev/null @@ -1,54 +0,0 @@ -//! An example showing off the usage of `Deserialize` to automatically decode -//! TOML into a Rust `struct` - -#![deny(warnings)] -#![allow(dead_code)] - -use serde_derive::Deserialize; - -/// This is what we're going to decode into. Each field is optional, meaning -/// that it doesn't have to be present in TOML. -#[derive(Debug, Deserialize)] -struct Config { - global_string: Option, - global_integer: Option, - server: Option, - peers: Option>, -} - -/// Sub-structs are decoded from tables, so this will decode from the `[server]` -/// table. -/// -/// Again, each field is optional, meaning they don't have to be present. -#[derive(Debug, Deserialize)] -struct ServerConfig { - ip: Option, - port: Option, -} - -#[derive(Debug, Deserialize)] -struct PeerConfig { - ip: Option, - port: Option, -} - -fn main() { - let toml_str = r#" - global_string = "test" - global_integer = 5 - - [server] - ip = "127.0.0.1" - port = 80 - - [[peers]] - ip = "127.0.0.1" - port = 8080 - - [[peers]] - ip = "127.0.0.1" - "#; - - let decoded: Config = toml::from_str(toml_str).unwrap(); - println!("{:#?}", decoded); -} diff --git a/vendor/toml/examples/enum_external.rs b/vendor/toml/examples/enum_external.rs deleted file mode 100644 index 7de061f61..000000000 --- a/vendor/toml/examples/enum_external.rs +++ /dev/null @@ -1,45 +0,0 @@ -//! An example showing off the usage of `Deserialize` to automatically decode -//! TOML into a Rust `struct`, with enums. - -#![deny(warnings)] -#![allow(dead_code)] - -use serde_derive::Deserialize; - -/// This is what we're going to decode into. -#[derive(Debug, Deserialize)] -struct Config { - plain: MyEnum, - plain_table: MyEnum, - tuple: MyEnum, - #[serde(rename = "struct")] - structv: MyEnum, - newtype: MyEnum, - my_enum: Vec, -} - -#[derive(Debug, Deserialize)] -enum MyEnum { - Plain, - Tuple(i64, bool), - NewType(String), - Struct { value: i64 }, -} - -fn main() { - let toml_str = r#" - plain = "Plain" - plain_table = { Plain = {} } - tuple = { Tuple = { 0 = 123, 1 = true } } - struct = { Struct = { value = 123 } } - newtype = { NewType = "value" } - my_enum = [ - { Plain = {} }, - { Tuple = { 0 = 123, 1 = true } }, - { NewType = "value" }, - { Struct = { value = 123 } } - ]"#; - - let decoded: Config = toml::from_str(toml_str).unwrap(); - println!("{:#?}", decoded); -} diff --git a/vendor/toml/examples/toml2json.rs b/vendor/toml/examples/toml2json.rs deleted file mode 100644 index 1b90c9fde..000000000 --- a/vendor/toml/examples/toml2json.rs +++ /dev/null @@ -1,47 +0,0 @@ -#![deny(warnings)] - -use std::env; -use std::fs::File; -use std::io; -use std::io::prelude::*; - -use serde_json::Value as Json; -use toml::Value as Toml; - -fn main() { - let mut args = env::args(); - let mut input = String::new(); - if args.len() > 1 { - let name = args.nth(1).unwrap(); - File::open(&name) - .and_then(|mut f| f.read_to_string(&mut input)) - .unwrap(); - } else { - io::stdin().read_to_string(&mut input).unwrap(); - } - - match input.parse() { - Ok(toml) => { - let json = convert(toml); - println!("{}", serde_json::to_string_pretty(&json).unwrap()); - } - Err(error) => println!("failed to parse TOML: {}", error), - } -} - -fn convert(toml: Toml) -> Json { - match toml { - Toml::String(s) => Json::String(s), - Toml::Integer(i) => Json::Number(i.into()), - Toml::Float(f) => { - let n = serde_json::Number::from_f64(f).expect("float infinite and nan not allowed"); - Json::Number(n) - } - Toml::Boolean(b) => Json::Bool(b), - Toml::Array(arr) => Json::Array(arr.into_iter().map(convert).collect()), - Toml::Table(table) => { - Json::Object(table.into_iter().map(|(k, v)| (k, convert(v))).collect()) - } - Toml::Datetime(dt) => Json::String(dt.to_string()), - } -} diff --git a/vendor/toml/src/datetime.rs b/vendor/toml/src/datetime.rs deleted file mode 100644 index a68b07568..000000000 --- a/vendor/toml/src/datetime.rs +++ /dev/null @@ -1,544 +0,0 @@ -use std::error; -use std::fmt; -use std::str::{self, FromStr}; - -use serde::{de, ser}; - -/// A parsed TOML datetime value -/// -/// This structure is intended to represent the datetime primitive type that can -/// be encoded into TOML documents. This type is a parsed version that contains -/// all metadata internally. -/// -/// Currently this type is intentionally conservative and only supports -/// `to_string` as an accessor. Over time though it's intended that it'll grow -/// more support! -/// -/// Note that if you're using `Deserialize` to deserialize a TOML document, you -/// can use this as a placeholder for where you're expecting a datetime to be -/// specified. -/// -/// Also note though that while this type implements `Serialize` and -/// `Deserialize` it's only recommended to use this type with the TOML format, -/// otherwise encoded in other formats it may look a little odd. -/// -/// Depending on how the option values are used, this struct will correspond -/// with one of the following four datetimes from the [TOML v1.0.0 spec]: -/// -/// | `date` | `time` | `offset` | TOML type | -/// | --------- | --------- | --------- | ------------------ | -/// | `Some(_)` | `Some(_)` | `Some(_)` | [Offset Date-Time] | -/// | `Some(_)` | `Some(_)` | `None` | [Local Date-Time] | -/// | `Some(_)` | `None` | `None` | [Local Date] | -/// | `None` | `Some(_)` | `None` | [Local Time] | -/// -/// **1. Offset Date-Time**: If all the optional values are used, `Datetime` -/// corresponds to an [Offset Date-Time]. From the TOML v1.0.0 spec: -/// -/// > To unambiguously represent a specific instant in time, you may use an -/// > RFC 3339 formatted date-time with offset. -/// > -/// > ```toml -/// > odt1 = 1979-05-27T07:32:00Z -/// > odt2 = 1979-05-27T00:32:00-07:00 -/// > odt3 = 1979-05-27T00:32:00.999999-07:00 -/// > ``` -/// > -/// > For the sake of readability, you may replace the T delimiter between date -/// > and time with a space character (as permitted by RFC 3339 section 5.6). -/// > -/// > ```toml -/// > odt4 = 1979-05-27 07:32:00Z -/// > ``` -/// -/// **2. Local Date-Time**: If `date` and `time` are given but `offset` is -/// `None`, `Datetime` corresponds to a [Local Date-Time]. From the spec: -/// -/// > If you omit the offset from an RFC 3339 formatted date-time, it will -/// > represent the given date-time without any relation to an offset or -/// > timezone. It cannot be converted to an instant in time without additional -/// > information. Conversion to an instant, if required, is implementation- -/// > specific. -/// > -/// > ```toml -/// > ldt1 = 1979-05-27T07:32:00 -/// > ldt2 = 1979-05-27T00:32:00.999999 -/// > ``` -/// -/// **3. Local Date**: If only `date` is given, `Datetime` corresponds to a -/// [Local Date]; see the docs for [`Date`]. -/// -/// **4. Local Time**: If only `time` is given, `Datetime` corresponds to a -/// [Local Time]; see the docs for [`Time`]. -/// -/// [TOML v1.0.0 spec]: https://toml.io/en/v1.0.0 -/// [Offset Date-Time]: https://toml.io/en/v1.0.0#offset-date-time -/// [Local Date-Time]: https://toml.io/en/v1.0.0#local-date-time -/// [Local Date]: https://toml.io/en/v1.0.0#local-date -/// [Local Time]: https://toml.io/en/v1.0.0#local-time -#[derive(PartialEq, Clone)] -pub struct Datetime { - /// Optional date. - /// Required for: *Offset Date-Time*, *Local Date-Time*, *Local Date*. - pub date: Option, - - /// Optional time. - /// Required for: *Offset Date-Time*, *Local Date-Time*, *Local Time*. - pub time: Option