#cargo #toml #serde #manifest

cargo-toml2

Cargo.toml and .cargo/config parsing stuff

8 stable releases

✓ Uses Rust 2018 edition

1.3.1 Dec 25, 2018
1.3.0 Dec 24, 2018
1.2.3 Dec 24, 2018
1.1.0 Dec 24, 2018
1.0.0 Dec 24, 2018

#31 in Build Utils

Download history 9/week @ 2019-01-20 6/week @ 2019-01-27 1/week @ 2019-02-03 2/week @ 2019-02-10 1/week @ 2019-02-17 10/week @ 2019-02-24 14/week @ 2019-03-03 2/week @ 2019-03-10 8/week @ 2019-03-17 80/week @ 2019-03-24 10/week @ 2019-03-31 1/week @ 2019-04-07 3/week @ 2019-04-14 12/week @ 2019-04-21 9/week @ 2019-04-28

63 downloads per month
Used in 3 crates

MIT/Apache

16KB
323 lines

Cargo-toml2

Crates.io maintenance-as-is

Stuff for parsing Cargo.toml and .cargo/config files.

Should be fully accurate as per the Manifest Reference and .cargo/config Reference.

In the event the reference and the implementation diverge, I will make no attempt to fix anything until the references are properly updated.

Keeping track of undocumented changes is never a fun thing and I don't plan to do it. And it benefits no one to have a bunch of undocumented behaviour for Cargo.toml/.cargo/config.

Details

No validation or other work is performed on (De)Serialization. It is up to you to:

  • Ensure inputs are valid if you intend to Serialize.
  • Set Default values for missing fields, if you want them.

Note that this is a pretty direct wrapper around the Cargo Manifest, and you should see the Manifest Reference if you want to know what things mean.

Limitations

Due to current limitations in toml-rs, the Dependencies table may fail to write out with a ValueAfterTable error.

As a workaround, if possible remove or convert the Dependency::Simple variants to Dependency::Full ones. The relevant issue is #256

FAQ

  • Q: What about cargo-toml?
  • A: 🤷. It didn't work for my needs, so I wrote my own.

  • Q: Why call it cargo-toml2?
  • A: Cargo-toml was taken, and I'm unimaginative. It's a simple obvious name that clearly states its purpose, what else could I make it? Sorry. Bit late to change after it's published.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~1.5MB
~30K SLoC