//! Transport abstraction and Store supertrait.
use async_trait;
use ;
use crateResult;
use crateQueryStore;
use crate;
/// Bidirectional message transport.
///
/// Not request-response: the client correlates responses by [`MessageId`](super::MessageId).
/// Server-initiated messages arrive through `recv()` with no matching request.
/// Combined store trait for use as a trait object.
///
/// Rust doesn't support `dyn ObjectStore + RefStore + QueryStore`, so this
/// supertrait combines all three. All existing stores (`MemoryStore`, `SqliteStore`)
/// auto-implement it via the blanket impl.