everything-plugin 0.2.1

Rust binding for Everything's plugin SDK
docs.rs failed to build everything-plugin-0.2.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: everything-plugin-0.1.0

everything-plugin

Rust binding for Everything's plugin SDK.

Features:

  • Load and save config with Serde
  • Make options pages GUI using Winio in MVU (Elm) architecture
  • Log with tracing

Example:

mod options;

#[derive(Serialize, Deserialize, Debug, Default)]
pub struct Config {
    s: String,
}

pub struct App {
    config: Config,
}

impl PluginApp for App {
    type Config = Config;

    fn new(config: Option<Self::Config>) -> Self {
        Self {
            config: config.unwrap_or_default(),
        }
    }

    fn config(&self) -> &Self::Config {
        &self.config
    }

    fn into_config(self) -> Self::Config {
        self.config
    }
}

plugin_main!(App, {
    PluginHandler::builder()
        .name("Test Plugin")
        .description("A test plugin for Everything")
        .author("Chaoses-Ib")
        .version("0.1.0")
        .link("https://github.com/Chaoses-Ib/IbEverythingLib")
        .options_pages(vec![
            OptionsPage::builder()
                .name("Test Plugin")
                .load(ui::winio::spawn::<options::MainModel>)
                .build(),
        ])
        .build()
});

Build

Static CRT

.cargo/config.toml:

[target.'cfg(all(target_os = "windows", target_env = "msvc"))']
rustflags = ["-C", "target-feature=+crt-static"]

Increase build size by ~100 KiB.

Debugging

  • .\Everything64.exe -debug

    Unlike -debug, -debug-log doesn't work with stdout/stderr outputs.

Plugins using this library