pulumi_gestalt_rust/
lib.rs

1mod output;
2pub use output::ToOutput;
3
4#[doc(hidden)]
5#[path = "private/mod.rs"]
6pub mod __private;
7mod input_or_output;
8mod oneof;
9
10pub use input_or_output::InputOrOutput;
11
12pub use oneof::OneOf2;
13pub use oneof::OneOf3;
14pub use oneof::OneOf4;
15
16pub use pulumi_gestalt_rust_adapter::ConfigValue;
17pub use pulumi_gestalt_rust_adapter::GestaltCompositeOutput;
18pub use pulumi_gestalt_rust_adapter::GestaltContext;
19pub use pulumi_gestalt_rust_adapter::GestaltOutput;
20pub use pulumi_gestalt_rust_adapter::InvokeResourceRequest;
21pub use pulumi_gestalt_rust_adapter::RegisterResourceRequest;
22pub use pulumi_gestalt_rust_adapter::ResourceRequestObjectField;
23
24#[cfg(target_arch = "wasm32")]
25pub type Context = pulumi_gestalt_rust_adapter_wasm::WasmContext;
26#[cfg(target_arch = "wasm32")]
27pub type Output<T> = pulumi_gestalt_rust_adapter_wasm::WasmOutput<T>;
28
29#[cfg(not(target_arch = "wasm32"))]
30pub type Context = pulumi_gestalt_rust_adapter_native::NativeContext;
31#[cfg(not(target_arch = "wasm32"))]
32pub type Output<T> = pulumi_gestalt_rust_adapter_native::NativeOutput<T>;
33
34/// Add the given [Output] to [Stack Output](https://www.pulumi.com/tutorials/building-with-pulumi/stack-outputs/)
35pub fn add_export<T>(name: &str, output: &Output<T>) {
36    output.add_to_export(name);
37}
38
39/// Load specific generated provider
40///
41/// build.rs:
42/// ```rust,no_run
43/// use std::error::Error;
44/// fn main() -> Result<(), Box<dyn Error>> {
45///     pulumi_gestalt_build::generate("random", "4.15.0")?;
46///     Ok(())
47/// }
48/// ```
49///
50/// lib.rs
51/// ```rust,ignore
52/// include_provider!("random");
53/// ```
54#[macro_export]
55macro_rules! include_provider {
56    ($file:expr) => {
57        include!(concat!(env!("OUT_DIR"), "/pulumi/", $file, "/main.rs"));
58    };
59}
60
61/// Generate boilerplate for Wasm entrypoint
62///
63/// ```rust,no_run
64/// use pulumi_gestalt_rust::*;
65/// use anyhow::Result;
66///
67/// pulumi_main!();
68///
69/// fn pulumi_main(context: &Context) -> Result<()> {
70///    Ok(())
71/// }
72/// ```
73#[macro_export]
74macro_rules! pulumi_main {
75    () => {
76        #[cfg(target_arch = "wasm32")]
77        #[unsafe(export_name = "component:pulumi-gestalt/pulumi-main@0.0.4#main")]
78        unsafe extern "C" fn __exported() {
79            pulumi_gestalt_rust::__private::pulumi_gestalt_rust_adapter_wasm::runner::run(
80                |engine| pulumi_main(&engine),
81            )
82            .unwrap();
83        }
84
85        #[cfg(not(target_arch = "wasm32"))]
86        fn main() {
87            let context = Context::new();
88            pulumi_main(&context).unwrap();
89            context.finish();
90        }
91    };
92}