wasmcloud_provider_sdk::provider

Struct ProviderConnection

source
pub struct ProviderConnection {
    pub source_links: Arc<RwLock<HashMap<LatticeTarget, InterfaceLinkDefinition>>>,
    pub target_links: Arc<RwLock<HashMap<String, InterfaceLinkDefinition>>>,
    pub nats: Arc<Client>,
    pub lattice: Arc<str>,
    pub host_id: String,
    pub provider_id: Arc<str>,
    pub provider_xkey: Arc<XKey>,
    pub host_xkey: Arc<XKey>,
    pub config: HashMap<String, String>,
}

Fields§

§source_links: Arc<RwLock<HashMap<LatticeTarget, InterfaceLinkDefinition>>>

Links from the provider to other components, aka where the provider is the source of the link. Indexed by the component ID of the target

§target_links: Arc<RwLock<HashMap<String, InterfaceLinkDefinition>>>

Links from other components to the provider, aka where the provider is the target of the link. Indexed by the component ID of the source

§nats: Arc<Client>

NATS client used for performing RPCs

§lattice: Arc<str>

Lattice name

§host_id: String§provider_id: Arc<str>§provider_xkey: Arc<XKey>

Secrets XKeys

§host_xkey: Arc<XKey>§config: HashMap<String, String>

Implementations§

source§

impl ProviderConnection

source

pub fn new( nats: impl Into<Arc<Client>>, provider_id: impl Into<Arc<str>>, lattice: impl Into<Arc<str>>, host_id: String, config: HashMap<String, String>, provider_private_xkey: impl Into<Arc<XKey>>, host_public_xkey: impl Into<Arc<XKey>>, ) -> ProviderInitResult<ProviderConnection>

source

pub async fn get_wrpc_client(&self, target: &str) -> Result<WrpcClient>

Retrieve a wRPC client that can be used based on the NATS client of this connection

§Arguments
  • target - Target ID to which invocations will be sent
source

pub async fn get_wrpc_client_custom( &self, target: &str, timeout: Option<Duration>, ) -> Result<WrpcClient>

Retrieve a wRPC client that can be used based on the NATS client of this connection, customized with invocation timeout

§Arguments
  • target - Target ID to which invocations will be sent
  • timeout - Timeout to be set on the client (by default if this is unset it will be 10 seconds)
source

pub fn provider_key(&self) -> &str

Get the provider key that was assigned to this host at startup

Stores link in the ProviderConnection, either as a source link or target link depending on if the provider is the source or target of the link

Deletes link from the ProviderConnection, either a source link or target link based on if the provider is the source or target of the link

source

pub async fn is_linked( &self, source_id: &str, target_id: &str, wit_namespace: &str, wit_package: &str, link_name: &str, ) -> bool

Returns true if the source is linked to this provider or if the provider is linked to the target on the given interface and link name

Trait Implementations§

source§

impl Clone for ProviderConnection

source§

fn clone(&self) -> ProviderConnection

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ProviderConnection

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromRef<T> for T
where T: Clone,

source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
source§

impl<T> FutureExt for T

source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> ErasedDestructor for T
where T: 'static,

source§

impl<T> MaybeSendSync for T