pub struct Transaction<'a> { /* private fields */ }Expand description
事务包装器 - 使用 trait object 实现泛型
Implementations§
Source§impl<'a> Transaction<'a>
impl<'a> Transaction<'a>
Sourcepub fn new(engine: &'a mut dyn StorageEngine) -> Self
pub fn new(engine: &'a mut dyn StorageEngine) -> Self
创建新事务(默认启用回滚日志)
Sourcepub fn with_rollback_log(
engine: &'a mut dyn StorageEngine,
enable_log: bool,
) -> Self
pub fn with_rollback_log( engine: &'a mut dyn StorageEngine, enable_log: bool, ) -> Self
创建新事务(带回滚日志开关)
Sourcepub fn rollback(&mut self) -> DbResult<()>
pub fn rollback(&mut self) -> DbResult<()>
回滚事务
反向应用所有写操作:
- Inserted: 删除该行
- Updated: 恢复旧值
- Deleted: 重新插入该行
Sourcepub fn engine(&self) -> &dyn StorageEngine
pub fn engine(&self) -> &dyn StorageEngine
获取引擎的不可变引用(用于查询等操作)
Sourcepub fn engine_mut(&mut self) -> &mut dyn StorageEngine
pub fn engine_mut(&mut self) -> &mut dyn StorageEngine
获取引擎的可变引用
Sourcepub fn with_engine<F, R>(&self, f: F) -> Rwhere
F: FnOnce(&dyn StorageEngine) -> R,
pub fn with_engine<F, R>(&self, f: F) -> Rwhere
F: FnOnce(&dyn StorageEngine) -> R,
直接访问底层引擎执行操作(不记录回滚日志) 适用于查询等只读操作
Sourcepub fn with_engine_mut<F, R>(&mut self, f: F) -> Rwhere
F: FnOnce(&mut dyn StorageEngine) -> R,
pub fn with_engine_mut<F, R>(&mut self, f: F) -> Rwhere
F: FnOnce(&mut dyn StorageEngine) -> R,
直接访问底层引擎执行操作(可变)
Auto Trait Implementations§
impl<'a> Freeze for Transaction<'a>
impl<'a> !RefUnwindSafe for Transaction<'a>
impl<'a> !Send for Transaction<'a>
impl<'a> !Sync for Transaction<'a>
impl<'a> Unpin for Transaction<'a>
impl<'a> UnsafeUnpin for Transaction<'a>
impl<'a> !UnwindSafe for Transaction<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more