#parser #value #root

plist

Rust 语言的 plist 解析器。支持 Serde 序列化。

47 个版本 (16 个稳定版)

1.7.0 2024年6月30日
1.6.1 2024年3月23日
1.6.0 2023年11月4日
1.5.0 2023年7月9日
0.0.10 2015年11月6日

解析器实现 中排名 49

Download history 105543/week @ 2024-04-28 95291/week @ 2024-05-05 100256/week @ 2024-05-12 97416/week @ 2024-05-19 102218/week @ 2024-05-26 109191/week @ 2024-06-02 97029/week @ 2024-06-09 93207/week @ 2024-06-16 100800/week @ 2024-06-23 96563/week @ 2024-06-30 97632/week @ 2024-07-07 103268/week @ 2024-07-14 106269/week @ 2024-07-21 107732/week @ 2024-07-28 105022/week @ 2024-08-04 88091/week @ 2024-08-11

每月下载量 414,640
536 个crate(96 个直接使用)中使用

MIT 许可证

250KB
6K SLoC

plist

Rust 语言的 plist 解析器。

许多之前版本的功能现在隐藏在 enable_unstable_features_that_may_break_with_minor_version_bumps 功能之后。这些将在 1.0 版本之后的小版本发布中破坏。如果您真的必须使用它们,您应该在您的 Cargo.toml 中指定波浪线要求,例如 plist = "~1.0.3",以便不自动更新到版本 1.1。

文档


lib.rs:

plist

Rust 语言的 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",以便不自动更新到版本 1.1。

依赖

~3.5MB
~61K SLoC