everything-rs 0.1.0

Ergonomic wrapper around everything-sys-bindgen for the Everything SDK
Documentation

Everything-rs

This crate provides a safe wrapper around the everything-sys-bindgen crate.
everything-sys-bindgen is a rust binding to the Everything SDK that allow IPC communication to the everything service.
The Everything service indexes files on windows and provides a expressive query syntax to search for files.
See the Everything SDK documentation for more information.

Example

use everything_rs::{Everything, EverythingRequestFlags, EverythingSort};

let mut everything = Everything::new();

everything.set_search("test");

everything.set_request_flags(
    EverythingRequestFlags::FullPathAndFileName
    | EverythingRequestFlags::Size
    | EverythingRequestFlags::DateCreated
);

everything.set_sort(EverythingSort::DateCreatedDescending);

everything.query().unwrap();

let num_results = everything.get_num_results();

assert!(num_results > 0);

for (i, path) in everything.full_path_iter().flatten().enumerate() {
    let size = everything.get_result_size(i as u32).unwrap();
    let date_created = everything.get_result_created_date(i as u32).unwrap();
    println!("{}: {} {} {}", i, path, size, date_created);
}