28 releases

✓ Uses Rust 2018 edition

0.5.1 Aug 16, 2019
0.5.0 Jul 26, 2019
0.4.2 Jun 11, 2019
0.4.1 Feb 9, 2019
0.0.10 Nov 6, 2015

#43 in Encoding

Download history 3536/week @ 2019-05-03 3711/week @ 2019-05-10 3828/week @ 2019-05-17 3598/week @ 2019-05-24 4081/week @ 2019-05-31 3543/week @ 2019-06-07 3475/week @ 2019-06-14 3754/week @ 2019-06-21 3211/week @ 2019-06-28 3243/week @ 2019-07-05 3575/week @ 2019-07-12 3500/week @ 2019-07-19 3351/week @ 2019-07-26 3379/week @ 2019-08-02 3840/week @ 2019-08-09

15,280 downloads per month
Used in 68 crates (15 directly)

MIT license

185KB
4.5K 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.

Build Status

Documentation


lib.rs:

Plist

A rusty plist parser.

Usage

Put this in your Cargo.toml:

[dependencies]
plist = "0.5"

And put this in your crate root:

extern crate plist;

Examples

Using serde

extern crate plist;
# #[cfg(feature = "serde")]
#[macro_use]
extern crate serde_derive;

# #[cfg(feature = "serde")]
# fn main() {
#[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");
# }
#
# #[cfg(not(feature = "serde"))]
# fn main() {}

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

~1MB
~19K SLoC