3个版本
0.1.5 | 2023年12月28日 |
---|---|
0.1.2 | 2023年12月28日 |
0.1.0 | 2023年12月24日 |
在 WebAssembly 中排名第 947
28KB
438 行
k0mmand3r 是一个Rust库,是一个"/slash"命令的字符串解析器
该库将打包为以上所有内容
- k0mmand3r 是一个用于其他Rust程序的Rust包
- k0mmand3r_ts 使用wasmer/bindgen (用于TypeScript) 的WASM版本 k0mmand3r
- 由 #[cfg(target_arch = "wasm32")] 控制访问
- 因为wasm-pack 不支持功能标志!
- k0mmand3r_py 使用maturin/pyo3 (一个Rust框架) 的Python版本
- 由 #[cfg(feature = "lang-python")] 控制访问
该k0mmand3r库的核心应尝试实现 "DRY" (不要重复自己) 并避免使用良好的惯用组合来重复实现任何重复的业务解析逻辑。
因此,核心解析逻辑在Rust中实现,但由于它使用了生存期和泛型,这些与wasm/python不兼容。
WASM版本在输出之前将转换为Result JSON字符串。Python版本转换为等效的Python类。
应该有 基本上 完整的测试覆盖率。
解析命令将遵循以下规则:解析可以接收命令或内容或两者
任何字符串都应该首先修剪前后的空白。修剪后,如果找到的kommand必须以正斜杠 "/" 开头,任何不以 "/" 开头的字符串都返回为 "content"(它没有命令)
如果找到kommand,则解析将继续解析命令的语法。以下是解析命令语法的规则
将找到零个或多个参数 --参数以双短横线"--"开头。参数始终是字母数字的。如果参数后面跟着一个=,则它将有一个值令牌,因此可以返回 --parameter 或 --parameter=value。参数的顺序很重要,应该保留在结构中。没有值的参数称为 "tag",有值的参数称为 "kvpair"。值可以是以下四种类型之一:1. 字符串 2. 数字 3. 布尔值 4. @user(用户令牌以文字 "@" 开头,后跟字母,后跟一个或多个字母数字或表情符号字符 5. #channel(频道令牌以文字 "#" 开头,后跟字母,后跟一个或多个字母数字或表情符号字符
these structures once parsed should be stored in an k0mmand3r result object
依赖关系
~4–7MB
~118K SLoC