//! Traits for connecting a concrete Surreal sink (and its matching checkpoint store)
//! from [`SurrealConfig`].
use ;
use crateCheckpointStore;
use async_trait;
/// Connect a single Surreal sink implementation from plain config.
///
/// In your app, pick one sink type, e.g. `run::<Surreal3Sink>(…)`.
/// The stock CLI may still auto-detect and branch across both SDKs.
/// Sink that can open a SurrealDB-table [`CheckpointStore`] for the same SDK major.
///
/// Embedders pick a sink crate (`surreal-sync-surreal` with `v2` / `v3`);
/// that type carries the correct checkpoint backend. Origin `run` / `run_sync` APIs
/// call this when `--checkpoints-surreal-table` is set — embedders never construct
/// stores or clients by hand.
///
/// Filesystem checkpoints (`--checkpoint-dir`) are handled by the source crate, not this trait.