#plist #parser #serialization #serde #value

creator-plist

一个Rusty plist解析器。支持Serde序列化。

1 个稳定版本

1.0.1 2021年1月5日

9#plist

MIT 许可证

185KB
4.5K SLoC

Plist

一个Rusty plist解析器。

许多旧版本的功能现在隐藏在enable_unstable_features_that_may_break_with_minor_version_bumps特性之后。这些将在1.0版本发布后的次要版本发布中中断。如果你真的必须使用它们,你应该在你的Cargo.toml中指定波浪线要求,例如plist = "~1.0.3",这样plist包就不会自动更新到版本1.1。

Build Status

文档


lib.rs:

Plist

一个Rusty plist解析器。

用法

将此放入你的Cargo.toml

[dependencies]
plist = "1"

并将此放入你的crate根目录

extern crate plist;

示例

使用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");
#

使用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"));

不稳定特性

许多旧版本的功能现在隐藏在enable_unstable_features_that_may_break_with_minor_version_bumps特性之后。这些将在1.0版本发布后的次要版本发布中中断。如果你真的必须使用它们,你应该在你的Cargo.toml中指定波浪线要求,例如plist = "~1.0.3",这样plist包就不会自动更新到版本1.1。

依赖项

~3MB
~51K SLoC