Skip to main content

Crate cloacina_workflow_plugin

Crate cloacina_workflow_plugin 

Source
Expand description

Cloacina plugin interface for the fidius plugin system.

This crate defines the plugin contract between cloacina workflow packages (compiled as cdylib plugins) and the cloacina host engine. Both sides depend on this crate — it is the single source of truth for the FFI ABI.

§For plugin authors

Use #[workflow] with features = ["packaged"] — the macro generates the #[plugin_impl(CloacinaPlugin)] code automatically. You don’t need to implement this trait directly.

§For host integration

Use fidius-host to load plugins and call methods through PluginHandle. Validate loaded plugins against CloacinaPlugin_INTERFACE_HASH to detect ABI drift at load time.

Re-exports§

pub use inventory_entries::ComputationGraphEntry;
pub use inventory_entries::ReactorEntry;
pub use inventory_entries::TaskEntry;
pub use inventory_entries::TriggerEntry;
pub use inventory_entries::TriggerlessGraph;
pub use inventory_entries::TriggerlessGraphEntry;
pub use inventory_entries::TriggerlessGraphFn;
pub use inventory_entries::TriggerlessGraphRegistration;
pub use inventory_entries::WorkflowDescriptorEntry;
pub use types::AccumulatorDeclarationEntry;
pub use types::CloacinaMetadata;
pub use types::GraphExecutionRequest;
pub use types::GraphExecutionResult;
pub use types::GraphPackageMetadata;
pub use types::PackageTasksMetadata;
pub use types::ReactorPackageMetadata;
pub use types::TaskExecutionRequest;
pub use types::TaskExecutionResult;
pub use types::TaskMetadataEntry;
pub use types::TriggerInvokeRequest;
pub use types::TriggerInvokeResult;
pub use types::TriggerPackageMetadata;
pub use types::TriggerlessGraphInvokeRequest;
pub use types::TriggerlessGraphInvokeResult;
pub use types::TriggerlessGraphMetadataEntry;
pub use fidius;
pub use fidius_core;
pub use fidius_core::inventory;

Modules§

__fidius_CloacinaPlugin
Generated companion module for the plugin interface.
descriptor
FFI descriptor and registry types for the Fidius plugin framework.
inventory_entries
Inventory entry types reachable from packaged cdylibs.
registry
Plugin registry assembly for multi-plugin dylibs.
status
FFI status codes returned by plugin method shims.
types
Shared types that cross the FFI boundary via fidius wire format.
wire
Wire format serialization for Fidius plugin FFI boundary.

Macros§

fidius_plugin_registry
Emit the fidius_get_registry export function.
package
Unified plugin shell macro for I-0102.

Structs§

PackageHeader
Fixed header fields that every package manifest must have.
PackageManifest
A parsed package manifest, generic over the host-defined metadata schema.
PluginError
Error returned by plugin method implementations to signal business logic failures.

Constants§

METHOD_EXECUTE_GRAPH
See METHOD_GET_TASK_METADATA.
METHOD_EXECUTE_TASK
See METHOD_GET_TASK_METADATA.
METHOD_GET_GRAPH_METADATA
See METHOD_GET_TASK_METADATA.
METHOD_GET_REACTOR_METADATA
See METHOD_GET_TASK_METADATA.
METHOD_GET_TASK_METADATA
Method index constants for the CloacinaPlugin trait. The fidius plugin ABI dispatches by positional method index — call sites on the host (and any out-of-tree consumers) must match the order in which methods are declared on the trait below. Defining them here in the canonical interface crate keeps host and plugin in lockstep: a reorder of trait methods is impossible without also re-numbering these constants.
METHOD_GET_TRIGGERLESS_GRAPH_METADATA
See METHOD_GET_TASK_METADATA.
METHOD_GET_TRIGGER_METADATA
See METHOD_GET_TASK_METADATA.
METHOD_INVOKE_TRIGGERLESS_GRAPH
See METHOD_GET_TASK_METADATA.
METHOD_INVOKE_TRIGGER_POLL
See METHOD_GET_TASK_METADATA.

Traits§

CloacinaPlugin
The plugin interface for cloacina workflow packages.

Attribute Macros§

plugin_impl
Implement a plugin interface for a concrete type.