#建议 #平均 #did #距离 #集合 #运行时 #标准

suggest

一个提供类似“你是指...吗?”等类似名称建议的最小库

3 个不稳定版本

0.5.1 2024年2月14日
0.5.0 2023年4月26日
0.4.0 2022年5月9日

算法类别中排名第238

Download history 682/week @ 2024-03-14 657/week @ 2024-03-21 673/week @ 2024-03-28 718/week @ 2024-04-04 1030/week @ 2024-04-11 1201/week @ 2024-04-18 1027/week @ 2024-04-25 1188/week @ 2024-05-02 785/week @ 2024-05-09 899/week @ 2024-05-16 992/week @ 2024-05-23 948/week @ 2024-05-30 977/week @ 2024-06-06 974/week @ 2024-06-13 971/week @ 2024-06-20 597/week @ 2024-06-27

每月下载量3,666
3个crate中使用

MIT 许可证

11KB
134

suggest crates.io 版本 crates.io 下载

一个提供类似“你是指...吗?”等类似名称建议的最小库。此库为标准库中所有集合类型提供了建议特性。

此库旨在在运行时从未知建议列表中建议一个候选者,除了在clap中已有的建议功能外。

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
suggest = "0.5"

示例

简单示例

此示例可以通过 cargo run --example simple 命令执行。

use suggest::Suggest;

fn main() {
    let input = "instakk";

    let list_commands = vec!["update", "install"];
    if list_commands.contains(&input) {
        return;
    }

    if let Some(sugg) = list_commands.suggest(input) {
        println!("No command named `{}` found.", input);
        println!("Did you mean `{}`?", sugg);
    }
}
$ cargo run
No command named `instakk` found.
Did you mean `install`?

指定距离

use suggest::Suggest;

fn main() {
    let input = "paoc";

    let list_commands = vec!["poac", "poacpp"];
    if list_commands.contains(&input) {
        return;
    }

    if let Some(sugg) = list_commands.suggest_by(input, 2) {
        println!("No command named `{}` found.", input);
        println!("Did you mean `{}`?", sugg);
    }
}
$ cargo run
No command named `paoc` found.
Did you mean `poac`?

支持的类型

如果有遗漏,请通过问题和拉取请求告知我。

序列

  • LinkedList
  • VecDeque
  • Vec

映射

  • HashMap
  • BTreeMap

要建议键,请使用 suggest::SuggestKey 特性。

集合

  • BTreeSet
  • HashSet

杂项

  • BinaryHeap
  • [T; N]:原始数组
  • [T]:切片

贡献

欢迎贡献,包括问题和拉取请求。

构建

$ cargo build

测试

$ cargo build
$ cargo test

发布

GitHub 发布

$ git tag v0.1.0
$ git push origin v0.1.0

crates.io

$ cargo publish

依赖项

~13KB