#模糊搜索 #模糊匹配 #模糊 #命令行 #文本搜索 #搜索 #文本

fuzzypicker

A Rust 库,用于在命令行应用程序中进行模糊搜索和交互式选择项目

10 个版本

0.2.1 2024年7月12日
0.2.0 2024年7月9日
0.1.7 2024年7月9日

#10#模糊匹配

Download history 494/week @ 2024-07-04 153/week @ 2024-07-11 31/week @ 2024-07-18 48/week @ 2024-07-25

每月 304 次下载

MIT 许可证

15KB
230

Fuzzypicker

Fuzzypicker 是一个 Rust 库,用于在命令行应用程序中启用模糊搜索和交互式选择项目。它旨在帮助构建 CLI 工具,其中用户需要根据模糊匹配标准从列表中选择一个项目。

功能

  • 根据用户输入在列表中模糊搜索项目。
  • 具有键盘和鼠标支持的交互式选择。
  • 无缝集成到基于 Rust 的命令行应用程序中。

安装

将 fuzzypicker 添加到您的项目中

cargo add fuzzypicker

用法

以下是一个基本示例,说明如何使用 fuzzypicker 在 Rust CLI 应用程序中实现模糊选择机制

use fuzzypicker::FuzzyPicker;

fn main() {
    // Example list of items (could be anything implementing Display + Clone)
    let items = vec![
        "apple", "banana", "cherry", "date", "elderberry", "fig", "grape", "honeydew",
    ];

    // Create a new FuzzyPicker instance
    let mut picker = FuzzyPicker::new(&items);

    // Perform interactive selection
    if let Ok(Some(selected_item)) = picker.pick() {
        println!("Selected item: {}", selected_item);
    } else {
        println!("Selection cancelled or no item selected.");
    }
}

API

结构体 FuzzyPicker<T:显示+ 克隆>

方法

  • new(items: &[T]) -> Self: 使用项目列表构建一个新的 FuzzyPicker 实例。
  • pick() -> Result<Option<T>, Box<dyn Error>>: 启动交互式选择过程。如果选择了项目,则返回 Some(selected_item),如果取消选择,则返回 None。

贡献

欢迎贡献!如果您想为 fuzzypicker 贡献,请分叉存储库并提交一个拉取请求。对于重大更改,请首先打开一个问题来讨论您想进行哪些更改。

许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。

致谢

  • 此库使用 crossterm 进行终端处理和输入。
  • 模糊匹配由 fuzzy-matcher 提供。

依赖关系

~1–6.5MB
~23K SLoC