pub trait Source: Send + Sync {
type Family: Family;
type Digest: Digest;
type Op;
type Error: Error + Send + 'static;
// Required method
fn serve<'a>(
&'a self,
request: Request<Self::Family>,
) -> impl Future<Output = Result<(Response<Self::Family, Self::Op, Self::Digest>, FeedbackTx), Self::Error>> + Send + 'a;
}Expand description
A source for proofs and operations.
Required Associated Types§
Required Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl<T> Source for Arc<T>
impl<T> Source for Arc<T>
type Family = <T as Source>::Family
type Digest = <T as Source>::Digest
type Op = <T as Source>::Op
type Error = <T as Source>::Error
fn serve<'a>( &'a self, request: Request<Self::Family>, ) -> impl Future<Output = Result<(Response<Self::Family, Self::Op, Self::Digest>, FeedbackTx), Self::Error>> + Send + 'a
Source§impl<T> Source for AsyncRwLock<T>where
T: Source,
impl<T> Source for AsyncRwLock<T>where
T: Source,
type Family = <T as Source>::Family
type Digest = <T as Source>::Digest
type Op = <T as Source>::Op
type Error = <T as Source>::Error
async fn serve( &self, request: Request<Self::Family>, ) -> Result<(Response<Self::Family, Self::Op, Self::Digest>, FeedbackTx), Self::Error>
Source§impl<T> Source for Option<T>
impl<T> Source for Option<T>
type Family = <T as Source>::Family
type Digest = <T as Source>::Digest
type Op = <T as Source>::Op
type Error = ServeError<<T as Source>::Family>
async fn serve( &self, request: Request<Self::Family>, ) -> Result<(Response<Self::Family, Self::Op, Self::Digest>, FeedbackTx), Self::Error>
Source§impl<T> Source for TracedAsyncRwLock<T>where
T: Source,
impl<T> Source for TracedAsyncRwLock<T>where
T: Source,
type Family = <T as Source>::Family
type Digest = <T as Source>::Digest
type Op = <T as Source>::Op
type Error = <T as Source>::Error
async fn serve( &self, request: Request<Self::Family>, ) -> Result<(Response<Self::Family, Self::Op, Self::Digest>, FeedbackTx), Self::Error>
Implementors§
Source§impl<F, E, C, H, S> Source for Journal<F, E, C, H, S>where
F: Family,
E: Context,
C: Contiguous<Item: EncodeShared + Floored<F>>,
H: Hasher,
S: Strategy,
impl<F, E, C, H, S> Source for Journal<F, E, C, H, S>where
F: Family,
E: Context,
C: Contiguous<Item: EncodeShared + Floored<F>>,
H: Hasher,
S: Strategy,
Source§impl<F, E, C, I, H, U, const N: usize, S> Source for commonware_storage::qmdb::any::db::Db<F, E, C, I, H, U, N, S>
impl<F, E, C, I, H, U, const N: usize, S> Source for commonware_storage::qmdb::any::db::Db<F, E, C, I, H, U, N, S>
Source§impl<F, E, C, I, H, U, const N: usize, S> Source for commonware_storage::qmdb::current::db::Db<F, E, C, I, H, U, N, S>
A current database serves proofs from the any database it wraps. The sync engine
operates on the ops root, which is any’s root.
impl<F, E, C, I, H, U, const N: usize, S> Source for commonware_storage::qmdb::current::db::Db<F, E, C, I, H, U, N, S>
A current database serves proofs from the any database it wraps. The sync engine
operates on the ops root, which is any’s root.