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
log
crate 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
ArcDynHit
with scoring metadata. - Standard implementation of
Hit
using closures. - Container for unchanging hits.
Enums§
- This is returned when a
Frontend
exits and tells gravel what to do. - Represents actions the
Frontend
should 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_frontend
macro. - This is the trait for hits returned from
crate::Provider
s. - Abstracts interaction between a hit action and the frontend.
- Abstracts functionality required for a provider.
- This trait is auto-implemented with the
crate::gravel_provider
macro.
Functions§
- Clones an
ArcDynHit
, as this is not straightforward.
Type Aliases§
- FFI-safe
Hit
trait object. - FFI-safe
FrontendInner
trait object. - FFI-safe
FrontendContext
trait object. - FFI-safe
ProviderInner
trait object. - Non-exhaustive wrapper around
FrontendExitStatus
. - Non-exhaustive wrapper around
FrontendMessage
. - FFI-safe reference to a
HitActionContext
trait object.
Attribute Macros§
- Automatically implements the necessary FFI-glue for plugins to work.
- Automatically implements the necessary FFI-glue for plugins to work.