| Crates.io | i_edit_toml |
| lib.rs | i_edit_toml |
| version | 0.4.0 |
| created_at | 2025-12-05 01:04:39.098765+00 |
| updated_at | 2025-12-05 01:04:39.098765+00 |
| description | A lightweight, high-performance tool for Editing TOML based on field paths |
| homepage | |
| repository | https://github.com/ymc-github/i_edit_toml |
| max_upload_size | |
| id | 1967409 |
| size | 287,077 |
一个轻量级、高性能的、基于字段路径的 TOML 编辑工具。
cargo install i_edit_toml
git clone https://github.com/ymc-github/i_edit_toml
cd i_edit_toml
cargo install --path .
# 从 GitHub 安装
cargo install --git https://github.com/ymc-github/i_edit_toml
# 指定分支
cargo install --git https://github.com/ymc-github/i_edit_toml --branch main
# 指定标签
cargo install --git https://github.com/ymc-github/i_edit_toml --tag v0.4.0
# from docker.io
# docker pull docker.io/ymc-github/i_edit_toml:latest
docker pull ymc-github/i_edit_toml:latest
# from ghcr.io
# ghcr.io/<owner>/<repo>:latest
docker pull ghcr.io/ymc-github/i_edit_toml:latest
# 基本使用(提取 package.name)
i_edit_toml get -f Cargo.toml -k package.name
# 提取包版本
i_edit_toml get --package-version
# 提取所有依赖
i_edit_toml get --dependencies
# 提取数组元素
i_edit_toml get --array package.authors
i_edit_toml get --array-element package.authors --array-index 0
# 提取数组长度
i_edit_toml get --array-length package.keywords
# 提取多个字段
i_edit_toml get -m package.name -m package.version -m package.authors
# 输出为 JSON 格式
i_edit_toml get -k dependencies --output json-pretty
# 基本使用(设置 package.version)
i_edit_toml set -f Cargo.toml -k package.version -v "0.4.0" --in-place
# 设置数组元素
i_edit_toml set -k package.authors[0] -v "New Author <author@example.com>" --in-place
# 创建不存在的字段
i_edit_toml set -k package.description -v "A new description" --create-missing --in-place
# 指定值类型
i_edit_toml set -k package.edition -v "2021" -t string --in-place
添加依赖到 Cargo.toml:
[dependencies]
i_edit_toml = "0.4"
在代码中使用:
use i_edit_toml::{get, set, ExtractConfig, SetConfig};
fn main() -> Result<(), Box<dyn std::error::Error>> {
// 提取字段
let get_config = ExtractConfig {
file_path: "Cargo.toml".to_string(),
field_path: "package.version".to_string(),
output_format: None,
strip_quotes: true,
};
let version = get::extract_field(&get_config)?;
println!("Current version: {}", version);
// 设置字段
let set_config = SetConfig {
file_path: "Cargo.toml".to_string(),
field_path: "package.version".to_string(),
value: "0.4.0".to_string(),
value_type: None,
create_missing: false,
};
set::set_field_and_save(&set_config)?;
println!("Version updated successfully");
Ok(())
}
MIT OR Apache-2.0