fidius-host::error Rust¶
Error types for fidius-host plugin loading and calling.
Enums¶
fidius-host::error::LoadError pub¶
Errors that can occur when loading a plugin.
Variants¶
LibraryNotFoundSymbolNotFoundInvalidMagicIncompatibleRegistryVersionIncompatibleAbiVersionInterfaceHashMismatchBufferStrategyMismatchArchitectureMismatchUnknownBufferStrategySignatureInvalidSignatureRequiredPluginNotFoundLibLoadingIoPythonLoad- Python loader failed (only produced with thepythonfeature on). Wrapsfidius_python::PythonLoadErroras a string to keep the fidius-host public error enum type-clean across feature gates.WasmLoad- WASM component loader failed (only produced with thewasmfeature on). Wraps wasmtime/instantiation errors as a string to keep the public enum type-clean across feature gates.ConfigSerialization- Failed to serialize a plugin's config for construction (FIDIUS-A-0006 / CI.2). Practically never happens for a well-formed config type.HostInterfaceVersionMismatch- The plugin was built against a different version of a host interface than the host provides (plugin → host callback channel). Raised at bind (load) time; the host-function table is never installed, so a mismatched surface cannot mis-dispatch.HostInterfaceHashMismatch- The plugin was built against a different signature set of a host interface than the host provides (same declared version, drifted methods). Raised at bind (load) time; nothing is installed.HostImportRegistryInvalid- The plugin'sfidius_get_host_importsregistry was malformed (bad magic, unsupported layout version, or invalid pointers).HostBindFailed- The plugin's bind shim rejected an offered host-function table (e.g. the interface was already bound for this library).
fidius-host::error::CallError pub¶
Errors that can occur when calling a plugin method.
Variants¶
SerializationDeserializationPluginPanicBufferTooSmallNotImplemented- Optional method is not implemented by this plugin — its capability bit is unset. Returned when a method marked#[optional]is called on a plugin that chose not to implement it. Not returned for out-of-range method indices; seeInvalidMethodIndex.InvalidMethodIndexUnknownStatusWireModeMismatch- A method was dispatched through the wrong wire path — a#[wire(raw)]method called via the typed path, or vice versa. Backend-agnostic: the Python and (future) WASM executors both enforce the raw/typed split.Backend- A runtime-level fault originating inside an execution backend that is not a plugin-raised [PluginError] — e.g. a future WASM trap (unreachable, out-of-bounds) or an interpreter-level failure. Carries the backend's runtime name and a message. Plugin-raised errors (Python exceptions included) stay in [CallError::Plugin] so their structuredcode/message/details(including tracebacks) round-trip.MalformedFrame- A streaming backend produced bytes that did not decode as a valid [fidius_core::frame::Frame] (bad tag, truncated, malformed payload). Distinct from [CallError::Deserialization], which is about an item's contents; this is about the framing around items. (FIDIUS-I-0026.)StreamAborted- A stream ended without a terminalEND/ERRORframe — the producer went away mid-stream (e.g. a dropped backend task, a crashed interpreter, a closed channel). (FIDIUS-I-0026.)