47 releases (16 stable)
1.7.0 | Jun 30, 2024 |
---|---|
1.6.1 | Mar 23, 2024 |
1.6.0 | Nov 4, 2023 |
1.5.0 | Jul 9, 2023 |
0.0.10 | Nov 6, 2015 |
#112 in Parser implementations
506,143 downloads per month
Used in 603 crates
(100 directly)
250KB
6K
SLoC
Plist
A rusty plist parser.
Many features from previous versions are now hidden behind the enable_unstable_features_that_may_break_with_minor_version_bumps
feature. These will break in minor version releases after the 1.0 release. If you really really must use them you should specify a tilde requirement e.g. plist = "~1.0.3"
in you Cargo.toml
so that the plist crate is not automatically updated to version 1.1.
lib.rs
:
Plist
A rusty plist parser.
Usage
Put this in your Cargo.toml
:
[dependencies]
plist = "1"
And put this in your crate root:
extern crate plist;
Examples
Using serde
extern crate plist;
#[macro_use]
extern crate serde_derive;
#[derive(Deserialize)]
#[serde(rename_all = "PascalCase")]
struct Book {
title: String,
author: String,
excerpt: String,
copies_sold: u64,
}
let book: Book = plist::from_file("tests/data/book.plist")
.expect("failed to read book.plist");
assert_eq!(book.title, "Great Expectations");
#
Using Value
use plist::Value;
let book = Value::from_file("tests/data/book.plist")
.expect("failed to read book.plist");
let title = book
.as_dictionary()
.and_then(|dict| dict.get("Title"))
.and_then(|title| title.as_string());
assert_eq!(title, Some("Great Expectations"));
Unstable Features
Many features from previous versions are now hidden behind the
enable_unstable_features_that_may_break_with_minor_version_bumps
feature. These will break in
minor version releases after the 1.0 release. If you really really must use them you should
specify a tilde requirement e.g. plist = "~1.0.3"
in you Cargo.toml
so that the plist crate
is not automatically updated to version 1.1.
Dependencies
~3.5MB
~61K SLoC