pulumi_gestalt_rust

Trait GestaltOutput

pub trait GestaltOutput<T>: Clone {
    type Me<A>;

    // Required methods
    fn map<B, F>(&self, f: F) -> Self::Me<B>
       where F: Fn(T) -> B + Send + 'static,
             T: DeserializeOwned,
             B: Serialize;
    fn add_to_export(&self, key: &str);
    fn combine<RESULT>(&self, others: &[&Self::Me<()>]) -> Self::Me<RESULT>;
    unsafe fn transmute<F>(self) -> Self::Me<F>;
}

Required Associated Types§

type Me<A>

Required Methods§

fn map<B, F>(&self, f: F) -> Self::Me<B>
where F: Fn(T) -> B + Send + 'static, T: DeserializeOwned, B: Serialize,

fn add_to_export(&self, key: &str)

fn combine<RESULT>(&self, others: &[&Self::Me<()>]) -> Self::Me<RESULT>

unsafe fn transmute<F>(self) -> Self::Me<F>

Forcefully changes the visible type of underlying Output

Can be used to work around Pulumi provider incorrect types

MUST NOT change the underlying value - only the projected type

§Safety

The underlying output must be of type F.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl<T> GestaltOutput<T> for NativeOutput<T>

§

type Me<A> = NativeOutput<A>

§

fn map<B, F>(&self, f: F) -> <NativeOutput<T> as GestaltOutput<T>>::Me<B>
where F: Fn(T) -> B + Send + 'static, T: DeserializeOwned, B: Serialize,

§

fn add_to_export(&self, key: &str)

§

fn combine<RESULT>( &self, others: &[&<NativeOutput<T> as GestaltOutput<T>>::Me<()>], ) -> <NativeOutput<T> as GestaltOutput<T>>::Me<RESULT>

§

unsafe fn transmute<F>(self) -> <NativeOutput<T> as GestaltOutput<T>>::Me<F>

Implementors§