Skip to main content

pulumi_gestalt_rust/
lib.rs

1mod macros;
2pub use macros::ToOutput;
3mod native;
4
5#[doc(hidden)]
6#[path = "private/mod.rs"]
7pub mod __private;
8mod input;
9mod oneof;
10mod pulumi_any;
11pub mod resources;
12pub mod stdlib;
13
14pub use input::Input;
15pub use pulumi_any::{PulumiAny, ToPulumiAny};
16
17pub use oneof::OneOf2;
18pub use oneof::OneOf3;
19pub use oneof::OneOf4;
20
21use anyhow::{Context as AnyhowContext, Result};
22pub use native::{
23    CompositeOutput, Context, CustomResourceOptions, InvokeResourceRequest, Provider,
24    RegisterResourceRequest, ResourceRequestObjectField,
25};
26pub use pulumi_gestalt_model::FromPulumiValue;
27pub use pulumi_gestalt_model::Output;
28pub use pulumi_gestalt_model::ToPulumiValue;
29
30/// Entrypoint for execution
31/// ```rust,no_run
32/// pulumi_gestalt_rust::run(|ctx| {
33///     // your code here
34///     let output = ctx.new_output(&"Hello, Pulumi!".to_string());
35///     ctx.add_export("greeting", &output);
36///     Ok(())
37/// }).unwrap();
38pub fn run<F: Fn(&Context) -> Result<()>>(f: F) -> Result<()> {
39    let ctx = Context::new();
40    f(&ctx).context("Failed to run Pulumi program")?;
41    ctx.finish();
42    Ok(())
43}
44
45/// Load specific generated provider
46///
47/// build.rs:
48/// ```rust,no_run
49/// use std::error::Error;
50/// fn main() -> Result<(), Box<dyn Error>> {
51///     pulumi_gestalt_build::generate("random", "4.15.0")?;
52///     Ok(())
53/// }
54/// ```
55///
56/// lib.rs
57/// ```rust,ignore
58/// include_provider!("random");
59/// ```
60#[macro_export]
61macro_rules! include_provider {
62    ($file:expr) => {
63        include!(concat!(env!("OUT_DIR"), "/pulumi/", $file, "/lib.rs"));
64    };
65}