The service-provider interface between the SurrealDB Rust SDK and the engines it drives.
An engine owns a datastore or a connection to one, and serves
[SurrealEngine] to the SDK. Some run as a task the SDK hands a [Route]
per request, answering on the route's response channel; session lifetime
travels alongside on a separate [SessionId] channel either way. This crate
holds exactly the types that cross that boundary, so an engine can live in
its own crate without the SDK depending on it, or on anything it in turn
depends on.
Stability
This is an internal interface between crates released together. It carries
no stability guarantee and may change in any release, including a patch
release. Depend on it only if you implement an engine; application code
should use the surrealdb crate.