#![deny(unsafe_code)]
#![warn(missing_docs, clippy::unwrap_used, clippy::expect_used)]
pub mod bindings;
#[cfg(all(not(target_arch = "wasm32"), feature = "host-bridge"))]
pub mod host_bridge;
#[cfg(feature = "distributor-api-imports")]
mod distributor_api_imports;
#[cfg(feature = "distributor-api-v1-1-imports")]
mod distributor_api_imports_v1_1;
#[cfg(feature = "component-v0-6")]
pub mod component_v0_6 {
pub use crate::bindings::greentic_component_0_6_0_component::exports::greentic::component::*;
pub use crate::bindings::greentic_component_0_6_0_component_i18n_support::exports::greentic::component::component_i18n;
pub use crate::bindings::greentic_component_0_6_0_component_qa_support::exports::greentic::component::component_qa;
}
#[cfg(feature = "component-v0-6")]
#[macro_export]
macro_rules! export_component_v060 {
($node_ty:ty $(, component_qa: $qa_ty:ty)? $(, component_i18n: $i18n_ty:ty)? $(,)?) => {
const _: () = {
use $crate::bindings::greentic_component_0_6_0_component::exports::greentic::component::node;
#[unsafe(export_name = "greentic:component/node@0.6.0#describe")]
unsafe extern "C" fn export_component_v060_describe() -> *mut u8 {
unsafe { node::_export_describe_cabi::<$node_ty>() }
}
#[unsafe(export_name = "cabi_post_greentic:component/node@0.6.0#describe")]
unsafe extern "C" fn export_component_v060_post_describe(arg0: *mut u8) {
unsafe { node::__post_return_describe::<$node_ty>(arg0) }
}
#[unsafe(export_name = "greentic:component/node@0.6.0#invoke")]
unsafe extern "C" fn export_component_v060_invoke(arg0: *mut u8) -> *mut u8 {
unsafe { node::_export_invoke_cabi::<$node_ty>(arg0) }
}
#[unsafe(export_name = "cabi_post_greentic:component/node@0.6.0#invoke")]
unsafe extern "C" fn export_component_v060_post_invoke(arg0: *mut u8) {
unsafe { node::__post_return_invoke::<$node_ty>(arg0) }
}
$(
use $crate::bindings::greentic_component_0_6_0_component_qa_support::exports::greentic::component::component_qa;
#[unsafe(export_name = "greentic:component/component-qa@0.6.0#qa-spec")]
unsafe extern "C" fn export_component_v060_qa_spec(arg0: i32) -> *mut u8 {
unsafe { component_qa::_export_qa_spec_cabi::<$qa_ty>(arg0) }
}
#[unsafe(export_name = "cabi_post_greentic:component/component-qa@0.6.0#qa-spec")]
unsafe extern "C" fn export_component_v060_post_qa_spec(arg0: *mut u8) {
unsafe { component_qa::__post_return_qa_spec::<$qa_ty>(arg0) }
}
#[unsafe(export_name = "greentic:component/component-qa@0.6.0#apply-answers")]
unsafe extern "C" fn export_component_v060_apply_answers(
arg0: i32,
arg1: *mut u8,
arg2: usize,
arg3: *mut u8,
arg4: usize,
) -> *mut u8 {
unsafe {
component_qa::_export_apply_answers_cabi::<$qa_ty>(
arg0, arg1, arg2, arg3, arg4,
)
}
}
#[unsafe(export_name = "cabi_post_greentic:component/component-qa@0.6.0#apply-answers")]
unsafe extern "C" fn export_component_v060_post_apply_answers(arg0: *mut u8) {
unsafe { component_qa::__post_return_apply_answers::<$qa_ty>(arg0) }
}
)?
$(
use $crate::bindings::greentic_component_0_6_0_component_i18n_support::exports::greentic::component::component_i18n;
#[unsafe(export_name = "greentic:component/component-i18n@0.6.0#i18n-keys")]
unsafe extern "C" fn export_component_v060_i18n_keys() -> *mut u8 {
unsafe { component_i18n::_export_i18n_keys_cabi::<$i18n_ty>() }
}
#[unsafe(export_name = "cabi_post_greentic:component/component-i18n@0.6.0#i18n-keys")]
unsafe extern "C" fn export_component_v060_post_i18n_keys(arg0: *mut u8) {
unsafe { component_i18n::__post_return_i18n_keys::<$i18n_ty>(arg0) }
}
)?
};
};
}
#[cfg(feature = "component-v1")]
pub mod component_v1 {
pub use crate::bindings::greentic_component_v1_0_1_0_component_host::exports::greentic::component_v1::*;
#[cfg(not(target_arch = "wasm32"))]
pub use greentic_interfaces::mappers::{ComponentOutcome, ComponentOutcomeStatus};
}
#[cfg(feature = "lifecycle")]
pub mod lifecycle {
pub use crate::bindings::greentic_lifecycle_1_0_0_component_lifecycle::exports::greentic::lifecycle::*;
}
#[cfg(feature = "secrets")]
pub mod secrets_store {
pub use crate::bindings::greentic_secrets_store_1_0_0_store::greentic::secrets_store::secrets_store::*;
}
#[cfg(feature = "provider-core-v1")]
pub mod provider_core {
pub use crate::bindings::greentic_provider_schema_core_1_0_0_schema_core::exports::greentic::provider_schema_core::schema_core_api::*;
}
#[cfg(feature = "operator-hooks-v1")]
pub mod operator_hooks {
pub use crate::bindings::greentic_operator_1_0_0_hook_provider::exports::greentic::operator::hook_api::*;
}
#[cfg(feature = "provider-common")]
pub mod provider_common {
pub use crate::bindings::provider_common_0_0_2_common::exports::provider::common::capabilities::*;
pub use crate::bindings::provider_common_0_0_2_common::exports::provider::common::render::*;
}
#[cfg(feature = "state-store")]
pub mod state_store {
pub use crate::bindings::greentic_state_1_0_0_store::greentic::state::state_store::*;
}
#[cfg(feature = "http-client")]
pub mod http_client {
pub use crate::bindings::greentic_http_1_0_0_client::greentic::http::http_client::*;
}
#[cfg(feature = "http-client-v1-1")]
pub mod http_client_v1_1 {
pub use crate::bindings::greentic_http_1_1_0_client::greentic::http::http_client::*;
}
#[cfg(feature = "telemetry")]
pub mod telemetry_logger {
pub use crate::bindings::greentic_telemetry_1_0_0_logger::greentic::telemetry::logger_api::*;
}
#[cfg(feature = "oauth-broker")]
pub mod oauth_broker {
pub use crate::bindings::greentic_oauth_broker_1_0_0_broker::exports::greentic::oauth_broker::broker_v1::*;
}
#[cfg(feature = "oauth-broker")]
pub mod oauth_broker_client {
pub use crate::bindings::greentic_oauth_broker_1_0_0_broker_client::greentic::oauth_broker::broker_v1::*;
}
#[cfg(feature = "worker")]
pub mod worker {
pub use crate::bindings::greentic_worker_1_0_0_worker::exports::greentic::worker::worker_api::*;
}
#[cfg(feature = "gui-fragment")]
pub mod gui_fragment {
pub use crate::bindings::greentic_gui_1_0_0_gui_fragment::exports::greentic::gui::fragment_api::*;
}
#[cfg(feature = "pack-validate")]
pub mod pack_validate {
pub use crate::bindings::greentic_pack_validate_0_1_0_pack_validator::exports::greentic::pack_validate::validator::*;
}
#[cfg(feature = "provision")]
pub mod provision {
pub use crate::bindings::greentic_provision_0_1_0_provision_runner::exports::greentic::provision::provisioner::*;
}
#[cfg(feature = "pack-export-v1")]
pub mod pack_exports {
#[cfg(feature = "pack-export-v1")]
pub mod v1 {
pub use crate::bindings::greentic_pack_export_v1_0_1_0_pack_host::exports::greentic::pack_export_v1::*;
#[cfg(not(target_arch = "wasm32"))]
pub use greentic_interfaces::mappers::{
FlowDescriptor as GuestFlowDescriptor, PackDescriptor as GuestPackDescriptor,
};
}
}
#[cfg(any(
feature = "repo",
feature = "build",
feature = "scan",
feature = "signing",
feature = "attestation",
feature = "policy",
feature = "metadata",
feature = "oci"
))]
pub mod supply_chain {
#[cfg(feature = "repo")]
pub mod source {
pub use crate::bindings::greentic_source_1_0_0_source_sync::exports::greentic::source::source_api::*;
}
#[cfg(feature = "build")]
pub mod build {
pub use crate::bindings::greentic_build_1_0_0_builder::exports::greentic::build::builder_api::*;
}
#[cfg(feature = "scan")]
pub mod scan {
pub use crate::bindings::greentic_scan_1_0_0_scanner::exports::greentic::scan::scanner_api::*;
}
#[cfg(feature = "signing")]
pub mod signing {
pub use crate::bindings::greentic_signing_1_0_0_signer::exports::greentic::signing::signer_api::*;
}
#[cfg(feature = "attestation")]
pub mod attestation {
pub use crate::bindings::greentic_attestation_1_0_0_attester::exports::greentic::attestation::attester_api::*;
}
#[cfg(feature = "policy")]
pub mod policy {
pub use crate::bindings::greentic_policy_1_0_0_policy_evaluator::exports::greentic::policy::policy_api::*;
}
#[cfg(feature = "metadata")]
pub mod metadata {
pub use crate::bindings::greentic_metadata_1_0_0_metadata_store::exports::greentic::metadata::metadata_api::*;
}
#[cfg(feature = "oci")]
pub mod oci {
pub use crate::bindings::greentic_oci_1_0_0_oci_distribution::exports::greentic::oci::oci_api::*;
}
}
#[cfg(feature = "distribution")]
pub mod distribution {
pub use crate::bindings::greentic_distribution_1_0_0_distribution::exports::greentic::distribution::distribution_api::*;
}
#[cfg(any(feature = "distributor-api", feature = "distributor-api-imports"))]
pub mod distributor_api {
#[cfg(feature = "distributor-api")]
pub use crate::bindings::greentic_distributor_api_1_0_0_distributor_api::exports::greentic::distributor_api::distributor::*;
#[cfg(feature = "distributor-api-imports")]
pub mod imports {
pub use crate::bindings::greentic_distributor_api_1_0_0_distributor_api_imports::greentic::distributor_api::distributor::*;
}
#[cfg(feature = "distributor-api-imports")]
pub use crate::distributor_api_imports::DistributorApiImports;
}
#[cfg(any(
feature = "distributor-api-v1-1",
feature = "distributor-api-v1-1-imports"
))]
pub mod distributor_api_v1_1 {
#[cfg(feature = "distributor-api-v1-1")]
pub use crate::bindings::greentic_distributor_api_1_1_0_distributor_api::exports::greentic::distributor_api::distributor::*;
#[cfg(feature = "distributor-api-v1-1-imports")]
pub mod imports {
pub use crate::bindings::greentic_distributor_api_1_1_0_distributor_api_imports::greentic::distributor_api::distributor::*;
}
#[cfg(feature = "distributor-api-v1-1-imports")]
pub use crate::distributor_api_imports_v1_1::DistributorApiImportsV1_1;
}
#[cfg(any(
feature = "wasix-mcp-24-11-05-guest",
feature = "wasix-mcp-25-03-26-guest",
feature = "wasix-mcp-25-06-18-guest"
))]
pub mod mcp {
#[cfg(feature = "wasix-mcp-24-11-05-guest")]
pub mod v24_11_05 {
pub use crate::bindings::wasix_mcp_24_11_5_mcp_router::exports::wasix::mcp::router::*;
}
#[cfg(feature = "wasix-mcp-25-03-26-guest")]
pub mod v25_03_26 {
pub use crate::bindings::wasix_mcp_25_3_26_mcp_router::exports::wasix::mcp::router::*;
}
#[cfg(feature = "wasix-mcp-25-06-18-guest")]
pub mod v25_06_18 {
pub use crate::bindings::wasix_mcp_25_6_18_mcp_router::exports::wasix::mcp::router::*;
}
}
#[cfg(feature = "repo-ui-actions")]
pub mod repo_ui_actions {
pub use crate::bindings::greentic_repo_ui_actions_1_0_0_repo_ui_worker::exports::greentic::repo_ui_actions::ui_action_api::*;
}
#[cfg(feature = "oauth-broker")]
pub mod oauth {
pub use super::oauth_broker::*;
}