4 个版本
0.4.5 | 2024年4月28日 |
---|---|
0.4.4 | 2024年3月5日 |
0.4.3 | 2024年2月1日 |
0.4.2 |
|
0.4.1 | 2023年10月24日 |
#590 in 配置
在 2 个 Crates 中使用 (通过 afrim)
20KB
313 行
Afrim 配置管理器
管理 afrim 输入法的配置。
特性
- rhai: 启用 rhai 脚本的用法。
- rhai-wasm: 类似于 rhai 但支持 wasm。
lib.rs
:
用于管理 afrim 输入法配置的库。
它基于 toml
Crate 构建。
示例
use afrim_config::Config;
use std::path::Path;
let filepath = Path::new("./data/config_sample.toml");
let conf = Config::from_file(&filepath).unwrap();
如果您想控制文件系统(读取文件),可以使用 Config::from_filesystem
方法。
示例
use afrim_config::{Config, FileSystem};
use std::{error, path::Path, string::String};
// Implements a custom filesystem.
struct File {
source: String,
}
impl File {
pub fn new(source: String) -> Self {
Self { source }
}
}
impl FileSystem for File {
fn read_to_string(&self, filepath: &Path) -> Result<String, std::io::Error> {
Ok(self.source.to_string())
}
}
// Sets the config file.
let config_file = File::new(r#"
[core]
auto_commit = false
[data]
"n*" = "ŋ"
"#.to_owned());
// Loads the config file.
let config = Config::from_filesystem(&Path::new("."), &config_file).unwrap();
assert_eq!(config.core.clone().unwrap().auto_commit, Some(false));
// Note that the auto_capitalize is enabled by default.
assert_eq!(
Vec::from_iter(config.extract_data().into_iter()),
vec![("n*".to_owned(), "ŋ".to_owned()), ("N*".to_owned(), "Ŋ".to_owned())]
);
依赖
~4.5–7MB
~129K SLoC