//! [`direct`]: the shell of a datasource without transactions, which writes
//! as it always does inside one.
use Result;
use ;
use crate::;
forward_table_shell!;
/// `shell`, taking part in a transaction by writing outside it: a write
/// through the wrapped Vista lands at once, stays after a rollback, and is
/// reported in [`Committed::unprotected`](super::Committed::unprotected).
///
/// A shell returns it from its [`rebind`](TableShell::rebind):
/// `Ok(direct(Box::new(self.clone())))`. Made there, it marks the rebind,
/// so the [`Transaction`] knows the Vista's writes are direct.