knife_util/
lib.rs

1//! knife-util 库
2//!
3//! 提供 knife 项目所需的通用工具和功能
4//!
5//! # 功能模块
6//! - **错误处理**: 统一的错误类型和处理机制
7//! - **JSON合并**: 深度合并JSON数据,支持类型转换
8//! - **路径工具**: 自动检测工作目录和项目路径
9//! - **TOML工具**: TOML与JSON之间的双向转换
10//!
11//! # 使用示例
12//!
13//! ## JSON合并
14//! ```rust
15//! use knife_util::{AppError, merge_json};
16//! use serde_json::json;
17//!
18//! fn main() -> Result<(), AppError> {
19//!     let target = json!({"user": {"name": "Alice"}});
20//!     let source = json!({"user": {"email": "alice@example.com"}});
21//!     
22//!     // 合并JSON数据
23//!     let merged = merge_json(&target, &source)?;
24//!     println!("合并结果: {}", serde_json::to_string_pretty(&merged).unwrap());
25//!     Ok(())
26//! }
27//! ```
28//!
29//! ## 路径工具
30//! ```rust
31//! use knife_util::{AppError, get_work_dir, is_dev_mode};
32//!
33//! fn main() -> Result<(), AppError> {
34//!     // 获取工作目录
35//!     let work_dir = get_work_dir()?;
36//!     println!("工作目录: {:?}", work_dir);
37//!     
38//!     // 检查是否为开发模式
39//!     if is_dev_mode() {
40//!         println!("当前在开发模式中");
41//!     } else {
42//!         println!("当前在生产模式中");
43//!     }
44//!     Ok(())
45//! }
46//! ```
47//!
48//! ## TOML工具
49//! ```rust
50//! use knife_util::{AppError, toml_to_json, json_to_toml};
51//! use serde_json::json;
52//!
53//! fn main() -> Result<(), AppError> {
54//!     // TOML 到 JSON 转换
55//!     let toml_str = r#"
56//!         title = "Example"
57//!         [database]
58//!         host = "localhost"
59//!         port = 5432
60//!     "#;
61//!     let json_value = toml_to_json(toml_str)?;
62//!     println!("TOML -> JSON: {}", serde_json::to_string_pretty(&json_value).unwrap());
63//!     
64//!     // JSON 到 TOML 转换
65//!     let json_data = json!({
66//!         "app": {"name": "MyApp", "version": "1.0.0"}
67//!     });
68//!     let toml_result = json_to_toml(&json_data)?;
69//!     println!("JSON -> TOML:\n{}", toml_result);
70//!     Ok(())
71//! }
72//! ```
73
74/// 错误处理模块
75pub mod error;
76
77/// JSON合并功能模块
78pub mod merge;
79
80/// 路径工具模块
81pub mod path;
82
83/// TOML工具模块
84pub mod toml;
85
86/// 错误类型
87pub use error::AppError;
88
89/// JSON合并功能
90pub use merge::{MergeFromTrait, MergeJsonTrait, merge_json};
91
92/// 路径工具
93pub use path::{build_work_path, get_work_dir, is_dev_mode};
94
95/// TOML工具
96pub use toml::{json_to_toml, toml_file_to_json, toml_to_json};