pub trait ProviderHandler:
Send
+ Sync
+ 'static {
Show 15 methods
// Required methods
fn capabilities(&self) -> Vec<String>;
fn initialize<'life0, 'life1, 'async_trait>(
&'life0 self,
context: &'life1 RequestContext,
application: InitializeApplication,
) -> Pin<Box<dyn Future<Output = RpcResult<Metadata>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn resolve_address<'life0, 'async_trait>(
&'life0 self,
context: RequestContext,
address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<ResolveAddressResult>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
// Provided methods
fn get<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<Option<ProvidedSecret>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn get_many<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_params: GetManyParams,
) -> Pin<Box<dyn Future<Output = RpcResult<GetManyResult>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn exists<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn set<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
_value: SecretValue,
) -> Pin<Box<dyn Future<Output = RpcResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn set_expiring<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
_value: SecretValue,
_ttl_ms: u64,
) -> Pin<Box<dyn Future<Output = RpcResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn delete<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn clear<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_params: ClearParams,
) -> Pin<Box<dyn Future<Output = RpcResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn check_writable<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn check_deletable<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn describe_write_target<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn reflect<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_params: ReflectParams,
) -> Pin<Box<dyn Future<Output = RpcResult<ReflectResult>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn shutdown<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
}Required Methods§
Sourcefn capabilities(&self) -> Vec<String>
fn capabilities(&self) -> Vec<String>
Supported operation names. provider.resolve_address is mandatory.
fn initialize<'life0, 'life1, 'async_trait>(
&'life0 self,
context: &'life1 RequestContext,
application: InitializeApplication,
) -> Pin<Box<dyn Future<Output = RpcResult<Metadata>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn resolve_address<'life0, 'async_trait>(
&'life0 self,
context: RequestContext,
address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<ResolveAddressResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Provided Methods§
fn get<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<Option<ProvidedSecret>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_many<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_params: GetManyParams,
) -> Pin<Box<dyn Future<Output = RpcResult<GetManyResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn exists<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn set<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
_value: SecretValue,
) -> Pin<Box<dyn Future<Output = RpcResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn set_expiring<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
_value: SecretValue,
_ttl_ms: u64,
) -> Pin<Box<dyn Future<Output = RpcResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn clear<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_params: ClearParams,
) -> Pin<Box<dyn Future<Output = RpcResult<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn check_writable<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn check_deletable<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn describe_write_target<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_address: Address,
) -> Pin<Box<dyn Future<Output = RpcResult<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn reflect<'life0, 'async_trait>(
&'life0 self,
_context: RequestContext,
_params: ReflectParams,
) -> Pin<Box<dyn Future<Output = RpcResult<ReflectResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn shutdown<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".