10 个版本 (5 个破坏性更新)
0.6.1 | 2023年4月24日 |
---|---|
0.6.0 | 2023年2月14日 |
0.5.0 | 2023年2月12日 |
0.4.0 | 2023年2月12日 |
0.1.1 | 2023年2月10日 |
#90 in #dump
每月 57 次下载
在 serde2file 中使用
15KB
123 行
serde2file 的 derive 宏
用法 / 用法
#[derive(Serialize, Deserialize, Serde2File)]
#[serde2file(
encrypt = "TestEncryptTool::encrypt",
decrypt = "TestEncryptTool::decrypt",
crypt_arg_type = "&'static str",
dump_file_name = "test_data.json"
)]
属性 / 属性
-
#[serde2file(arg1=value1,...)]
- encrypt 数据加密方法
- decrypt 数据解密方法
- 以上加密和解密方法必须同时设置,否则不进行加解密。
- 示例: #[serde2file(encrypt="TestEncryptTool::encrypt",decrypt="TestEncryptTool::decrypt")]
- dump_file_name
- 自定义转储文件名
- 如果没有设置,则默认转储文件名为当前 Struct 的全名。
- 例如,serde2file::test::TestData 对应的默认转储文件名为 serde2file-test-TestData.json
- 示例: #[serde2file(dump_file_name = "test_data.json")]
- crypt_arg_type
- 定义额外的加密和解密参数类型
- 用于传递自定义参数到加密或解密函数
- 示例: #[serde2file(crypt_arg_type = "&'static str")]
- 动态确定文件名和保存路径
- file_name_getter : 文件名个性化获取函数
- file_name_getter_arg_type : 文件名获取函数参数类型,用于根据参数动态获取文件名
-
#[serde2file(参数1=值1,...)]
- encrypt 数据加密方法
- decrypt 数据解密方法
- 以上加密和解密方法必须同时设置,否则不进行加解密。
- 例如:#[file_encrypt(encrypt="TestEncryptTool::encrypt",decrypt="TestEncryptTool::decrypt")]
- dump_file_name
- 设置自定义的转储文件名称
- 自定义转储文件名称
- 默认为当前 Struct 的完整名称,
- 如 serde2file::test::TestData 对应的默认转储文件名称为 serde2file-test-TestData.json
- 例如:#[serde2file(dump_file_name = "test_data.json")]
- crypt_arg_type
- 定义额外的加解密参数类型
- 用于向加密或解密函数传递自定义参数使用
- 例如:#[serde2file(crypt_arg_type = "&'static str")]
- 动态确定文件名称和保存路径
- file_name_getter 文件名称获取函数
- file_name_getter_arg_type 文件名称获取函数传参类型,用于根据参数动态获取文件名称
- 例如:#[serde2file(file_name_getter = "some_get_file_name_function",file_name_getter_arg_type = "String")]
示例/例子
use serde2file_macro_derive::Serde2File;
#[derive(Debug, Serialize, Deserialize, Default, PartialEq, Eq, Serde2File)]
#[serde2file(
encrypt = "TestEncryptTool::encrypt",
decrypt = "TestEncryptTool::decrypt",
crypt_arg_type = "&'static str",
file_name_getter_arg_type = "(&str,&str)",
file_name_getter = "(&str,&str)",
dump_file_name = "test_data.json",
file_name_getter = "some_get_file_name_function",
file_name_getter_arg_type = "String"
)]
struct TestData {
id: String,
name: String,
}
依赖项
~1.5MB
~35K SLoC