#inn #matching #difference #implemented #heavily #wildmat #wildmat-uwildmat

uwildmat

Rust库,用于wildmat/uwildmat匹配

3个版本 (破坏性)

0.3.0 2023年3月21日
0.2.0 2023年3月12日
0.1.0 2023年3月12日

#1029 in 文本处理

每月28次下载

MIT许可证

18KB
428

uwildmat

uwildmat用Rust实现。

无依赖。

基于uwildmat原始C版本的实现,该版本是InterNetNews(INN)的一部分。

用法

# Cargo.toml
[dependencies]
uwildmat = "0.3"
// your_code.rs
use uwildmat::simple as uwildmat;

let text = "foo";
let pattern = "*foo*";
asserteq!(uwildmat(text, pattern), true);

// or:

use uwildmat::regular as uwildmat;

let text = "foo";
let pattern = "*foo*";
asserteq!(uwildmat(text, pattern), true);

// or:

use uwildmat::poison as uwildmat;

let text = "foo";
let pattern = "*foo*";
asserteq!(uwildmat(text, pattern), true);

与INN的uwildmat的差异

此模块将 不会 处理无效的UTF-8。INN的uwildmat(技术上)允许任何字节序列作为输入,即使它是无效的UTF-8。

开发

使用nightly工具链

$ rustup override set nightly

然后是常规的

$ cargo clean
$ cargo build
$ cargo test
$ cargo bench

基准测试

在做出更改时,首先检查它对性能的影响。

在做出更改之前,获取“杂项”基准测试组的基线。

$ cargo bench --bench misc -- --save-baseline before

在做出更改之后,将性能与基线进行比较。

$ cargo bench --bench misc -- --baseline before

构建脚本

构建脚本 src/build.rs 下载INN uwildmat测试套件并处理它,生成等效的Rust测试套件。

无运行时依赖

~0–2MB
~30K SLoC