pub trait RegionFollowerClient:
Sync
+ Send
+ Debug {
// Required methods
fn add_region_follower<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutorContext,
request: AddRegionFollowerRequest,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn remove_region_follower<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutorContext,
request: RemoveRegionFollowerRequest,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn add_table_follower<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutorContext,
request: AddTableFollowerRequest,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn remove_table_follower<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutorContext,
request: RemoveTableFollowerRequest,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn start<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
urls: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn start_with<'life0, 'async_trait>(
&'life0 self,
leader_provider: LeaderProviderRef,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
A trait for clients that can manage region followers.
The executor context carries the actor and the event input of the submission, so implementations can forward them to the metasrv and the region follower procedures record who submitted the operation.
Required Methods§
fn add_region_follower<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutorContext,
request: AddRegionFollowerRequest,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn remove_region_follower<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutorContext,
request: RemoveRegionFollowerRequest,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn add_table_follower<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutorContext,
request: AddTableFollowerRequest,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn remove_table_follower<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutorContext,
request: RemoveTableFollowerRequest,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn start<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
urls: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn start_with<'life0, 'async_trait>(
&'life0 self,
leader_provider: LeaderProviderRef,
) -> Pin<Box<dyn Future<Output = Result<()>> + 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".