Crates.io | dev-tool |
lib.rs | dev-tool |
version | 0.1.12 |
created_at | 2025-08-29 08:55:55.872917+00 |
updated_at | 2025-09-17 01:28:14.732459+00 |
description | dev-tool(变更为mitoo)是一个Rust工具包类库,对文件、加密解密、转码、正则、线程池、sqlite等方法进行封装,组成各种Util工具类。 |
homepage | |
repository | https://gitee.com/ranfusheng/mitoo.git |
max_upload_size | |
id | 1815563 |
size | 176,718 |
dev-tool 是一个Rust工具包类库,对配置读取、文件操作、加解密、转码、正则、线程等方法进行封装,自定义或集成各种Util工具类。
dev-tool 后续变更为 mitoo
实现了json与yaml,作为配置使用,用户是知道配置的内容及格式的,当多层配置时,可以直接通过x.y.z.w
方式直接对应的数据,具体使用如下:
特别注意:不管是对象,还是数组,都是直接通过点操作的,如 obj.children.name
其中obj是对象,children是一个数组,name是children中对象的一个属性,当obj.children.name获取的是children数组中所有对象的name值。
use dev_tool::YamlWrapper;
#[test]
fn test_config_util() {
let wrapper = JsonWrapper::new("docs/config.yaml").unwrap(); // yaml配置
// let warpper = YamlWrapper::from_string("......").unwrap();
// 注意: 这里面的children是一个数组,不管是数组还是对象,都是通过点来操作
let x = wrapper.get("address.children.name");
// address.children.name = [String("r"), String("s")]
println!("address.children.name = {:?}", x);
println!("=============================================================");
// 作为配置使用,正常是知晓需要
let x = wrapper.get_one("address.x.y").as_str().unwrap();
// address.x.y = hello, json!
println!("address.x.y = {}", x);
}
// 注意:这里需引入了两个FromSqliteRow,一个用于注解,一个用于扩写后的代码使用
use dev_tool::sqlite_util::{FromSqliteRow, SqliteClient};
use from_sqlite_row_macro::FromSqliteRow;
// 假设存在一个 users 表,定义对应的结构体
#[derive(Debug, FromSqliteRow)]
struct User {
id: i64, // 不要使用i32(其没有实现对应的trait)
name: String,
}
#[test]
fn it_works() {
let client = SqliteClient::new("test.db").expect("Failed to create SqliteUtil");
let user_results = client.query::<User>("SELECT id, name FROM users");
println!("User results: {:?}", user_results);
for item in user_results {
println!("id = {}, name = {}", item.id, item.name);
}
}
cargo add mitoo
Fork 本仓库
新建 Feat_xxx 分支
提交代码
新建 Pull Request