3个版本

0.1.5 2023年12月28日
0.1.2 2023年12月28日
0.1.0 2023年12月24日

WebAssembly 中排名第 947

MIT 许可证

28KB
438

k0mmand3r 是一个Rust库,是一个"/slash"命令的字符串解析器

该库将打包为以上所有内容

  1. k0mmand3r 是一个用于其他Rust程序的Rust包
  2. k0mmand3r_ts 使用wasmer/bindgen (用于TypeScript) 的WASM版本 k0mmand3r
    • 由 #[cfg(target_arch = "wasm32")] 控制访问
    • 因为wasm-pack 不支持功能标志!
  3. 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