bulwark_wasm_host/
errors.rs

1/// Returned when an attempt to load a plugin fails.
2#[derive(thiserror::Error, Debug)]
3pub enum PluginLoadError {
4    #[error(transparent)]
5    WasiError(#[from] wasi_common::Error),
6    #[error(transparent)]
7    StringArray(#[from] wasi_common::StringArrayError),
8    #[error(transparent)]
9    Resolution(#[from] bulwark_config::ResolutionError),
10    #[error("at least one resource required")]
11    ResourceMissing,
12    #[error(transparent)]
13    AnyError(#[from] anyhow::Error),
14}
15
16/// Returned when an attempt to instantiate a plugin fails.
17#[derive(thiserror::Error, Debug)]
18pub enum PluginInstantiationError {
19    #[error(transparent)]
20    WasiError(#[from] wasi_common::Error),
21    #[error(transparent)]
22    StringArray(#[from] wasi_common::StringArrayError),
23    #[error(transparent)]
24    ContextInstantiation(#[from] ContextInstantiationError),
25    #[error(transparent)]
26    AnyError(#[from] anyhow::Error),
27}
28
29/// Returned when an attempt to execute a function within a plugin environment fails.
30#[derive(thiserror::Error, Debug)]
31pub enum PluginExecutionError {
32    #[error(transparent)]
33    WasiError(#[from] wasi_common::Error),
34    #[error(transparent)]
35    StringArray(#[from] wasi_common::StringArrayError),
36    #[error("function not implemented '{expected}'")]
37    NotImplementedError { expected: String },
38    #[error(transparent)]
39    AnyError(#[from] anyhow::Error),
40}
41
42/// Returned when attempting to create a [`RequestContext`](crate::RequestContext) fails.
43#[derive(thiserror::Error, Debug)]
44pub enum ContextInstantiationError {
45    #[error(transparent)]
46    StringArray(#[from] wasi_common::StringArrayError),
47    #[error(transparent)]
48    ConfigSerialization(#[from] bulwark_config::ConfigSerializationError),
49    #[error(transparent)]
50    AnyError(#[from] anyhow::Error),
51}