Expand description
This is the interface library between the main gravel application and individual plugins.
[abi_stable] is used to facilitate safe FFI across compiler versions.
Modules§
- Plumbing for using the
logcrate across FFI-boundaries. - Defines useful functions for working with common paths.
- This module re-exports the types needed to write plugins.
Structs§
- Container for hits than can be re-used.
- Abstracts config deserialization from plugins, allowing differing configuration for different plugin instances.
- Holds metadata and a factory function for a plugin.
- [
RootModule] for a plugin. It is auto-implemented using the macros. - This is the pointer to the prefix of
PluginLib. - Holds metadata about a plugin.
- A collection of hits returned by a provider.
- A Collection of scored hits returned by the
FrontendContext. - Wraps an
ArcDynHitwith scoring metadata. - Standard implementation of
Hitusing closures. - Container for unchanging hits.
Enums§
- This is returned when a
Frontendexits and tells gravel what to do. - Represents actions the
Frontendshould take.
Constants§
Traits§
- Abstracts functionality required for a frontend.
- Context object providing core functionality to the
Frontend. - This trait is auto-implemented with the
crate::gravel_frontendmacro. - This is the trait for hits returned from
crate::Providers. - Abstracts interaction between a hit action and the frontend.
- Abstracts functionality required for a provider.
- This trait is auto-implemented with the
crate::gravel_providermacro.
Functions§
- Clones an
ArcDynHit, as this is not straightforward.
Type Aliases§
- FFI-safe
Hittrait object. - FFI-safe
FrontendInnertrait object. - FFI-safe
FrontendContexttrait object. - FFI-safe
ProviderInnertrait object. - Non-exhaustive wrapper around
FrontendExitStatus. - Non-exhaustive wrapper around
FrontendMessage. - FFI-safe reference to a
HitActionContexttrait object.
Attribute Macros§
- Automatically implements the necessary FFI-glue for plugins to work.
- Automatically implements the necessary FFI-glue for plugins to work.