#windows #everything #query #search-query #c-bindings #along #void-tools

sys everything-sys

VoidTools' Everything 的 Rust C 绑定

1 个不稳定版本

0.1.4 2021 年 2 月 27 日
0.1.3 2021 年 2 月 25 日
0.1.2 2021 年 2 月 25 日
0.1.1 2021 年 2 月 25 日
0.1.0 2021 年 2 月 25 日

#16 in #along

MIT 许可协议

77KB
2.5K SLoC

C 2.5K SLoC // 0.0% comments Rust 310 SLoC // 0.0% comments

VoidTools' Everything 的 Rust 绑定

这仅是封装了 VoidTools' 绑定,没有其他功能。

示例

此示例需要 widestring 包以及 everything-sys。相同的示例可以在 examples 目录中找到。

use everything_sys::*;
use widestring::U16CString;

pub fn search(query: &str) {
    unsafe {
        let query_as_wchar = U16CString::from_str(query).unwrap();
        Everything_SetSearchW(query_as_wchar.as_ptr());
        if Everything_QueryW(1) == 1 {
            let res = Everything_GetNumResults();
            for i in 0..res {
                let filename =
                    U16CString::from_ptr_str(Everything_GetResultFileNameW(i)).to_string_lossy();
                let path = U16CString::from_ptr_str(Everything_GetResultPathW(i)).to_string_lossy();
                println!("{} {}", path, filename);
            }
        }
    }
}

pub fn main() {
    search("notepad*")
}

依赖项

~0–2.1MB
~38K SLoC