tikv_client::request

Trait Shardable

Source
pub trait Shardable {
    type Shard: Clone + Send + Sync;

    // Required methods
    fn shards(
        &self,
        pd_client: &Arc<impl PdClient>,
    ) -> BoxStream<'static, Result<(Self::Shard, RegionStore)>>;
    fn apply_shard(
        &mut self,
        shard: Self::Shard,
        store: &RegionStore,
    ) -> Result<()>;
}

Required Associated Types§

Required Methods§

Source

fn shards( &self, pd_client: &Arc<impl PdClient>, ) -> BoxStream<'static, Result<(Self::Shard, RegionStore)>>

Source

fn apply_shard(&mut self, shard: Self::Shard, store: &RegionStore) -> Result<()>

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.

Implementors§

Source§

impl<P: Plan + Shardable> Shardable for PreserveShard<P>

Source§

impl<P: Plan + Shardable, PdC: PdClient> Shardable for CleanupLocks<P, PdC>

Source§

impl<P: Plan + Shardable, PdC: PdClient> Shardable for ResolveLock<P, PdC>

Source§

impl<Req: KvRequest + Shardable> Shardable for Dispatch<Req>

Source§

type Shard = <Req as Shardable>::Shard