20个版本 (10个破坏性更新)
0.11.0 | 2024年5月23日 |
---|---|
0.10.0 | 2024年2月19日 |
0.9.0 | 2024年2月9日 |
0.8.1 | 2023年11月11日 |
0.1.1 | 2021年5月30日 |
#282 in 编码
每月75,970次下载
用于 6 个crate(4个直接使用)
17KB
340 代码行
pyproject-toml-rs
pyproject.toml
解析器。
安装
将其添加到您的 Cargo.toml
[dependencies]
pyproject-toml = "0.8"
然后您就可以使用了。如果您使用的是Rust 2015,您还必须在crate根目录中添加 extern crate pyproject_toml
。
扩展解析
如果您想添加额外的字段解析,您可以使用 serde
的 flatten
功能并实现 Deref
特性,例如
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct PyProjectToml {
#[serde(flatten)]
inner: pyproject_toml::PyProjectToml,
tool: Option<Tool>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "kebab-case")]
pub struct Tool {
maturin: Option<ToolMaturin>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "kebab-case")]
pub struct ToolMaturin {
sdist_include: Option<Vec<String>>,
}
impl std::ops::Deref for PyProjectToml {
type Target = pyproject_toml::PyProjectToml;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
impl PyProjectToml {
pub fn new(content: &str) -> Result<Self, toml::de::Error> {
toml::from_str(content)
}
}
许可证
此作品根据MIT许可证发布。许可证副本在 LICENSE 文件中提供。
依赖项
~6–8.5MB
~176K SLoC