1#![allow(missing_docs)]
2#![allow(non_camel_case_types)] pub use async_trait::async_trait;
5
6wasmtime::component::bindgen!({
7 inline: r#"
8 package fermyon:runtime;
9 world host {
10 include fermyon:spin/host;
11 include fermyon:spin/platform@2.0.0;
12 include fermyon:spin/platform@3.0.0;
13 include spin:up/platform@3.2.0;
14 include spin:up/platform@3.4.0;
15 include wasi:keyvalue/imports@0.2.0-draft2;
16 }
17 "#,
18 path: "../../wit",
19 imports: { default: async | trappable },
20 exports: { default: async },
21 trappable_error_type: {
23 "fermyon:spin/config/error" => v1::config::Error,
24 "fermyon:spin/http-types/http-error" => v1::http_types::HttpError,
25 "fermyon:spin/llm@2.0.0/error" => v2::llm::Error,
26 "fermyon:spin/llm/error" => v1::llm::Error,
27 "fermyon:spin/mqtt@2.0.0/error" => v2::mqtt::Error,
28 "fermyon:spin/mysql/mysql-error" => v1::mysql::MysqlError,
29 "fermyon:spin/postgres/pg-error" => v1::postgres::PgError,
30 "fermyon:spin/rdbms-types@2.0.0/error" => v2::rdbms_types::Error,
31 "fermyon:spin/redis-types/error" => v1::redis_types::Error,
32 "fermyon:spin/redis@2.0.0/error" => v2::redis::Error,
33 "fermyon:spin/sqlite@2.0.0/error" => v2::sqlite::Error,
34 "fermyon:spin/sqlite/error" => v1::sqlite::Error,
35 "fermyon:spin/variables@2.0.0/error" => v2::variables::Error,
36 "spin:postgres/postgres@3.0.0/error" => spin::postgres3_0_0::postgres::Error,
37 "spin:postgres/postgres@4.0.0/error" => spin::postgres4_0_0::postgres::Error,
38 "spin:sqlite/sqlite/error" => spin::sqlite::sqlite::Error,
39 "wasi:config/store@0.2.0-draft-2024-09-27/error" => wasi::config::store::Error,
40 "wasi:keyvalue/store/error" => wasi::keyvalue::store::Error,
41 "wasi:keyvalue/atomics/cas-error" => wasi::keyvalue::atomics::CasError,
42 },
43});
44
45pub use fermyon::spin as v1;
46pub use fermyon::spin2_0_0 as v2;
47
48mod conversions;