pub trait Extension: Send + 'static {
// Required methods
fn as_mut_any(&mut self) -> &mut dyn Any;
fn type_id(&self) -> TypeId;
// Provided methods
fn start_transaction(&mut self, ty: TransactionType) { ... }
fn commit_transaction(&mut self, ty: TransactionType) { ... }
fn rollback_transaction(&mut self, ty: TransactionType) { ... }
}Expand description
Marker trait for types that should be registered as Externalities
extension.
As extensions are stored as Box<Any>, this trait should give more confidence that the correct
type is registered and requested.
Required Methods§
Sourcefn as_mut_any(&mut self) -> &mut dyn Any
fn as_mut_any(&mut self) -> &mut dyn Any
Return the extension as &mut dyn Any.
This is a trick to make the trait type castable into an Any.
Provided Methods§
Sourcefn start_transaction(&mut self, ty: TransactionType)
fn start_transaction(&mut self, ty: TransactionType)
Start a transaction of type ty.
Sourcefn commit_transaction(&mut self, ty: TransactionType)
fn commit_transaction(&mut self, ty: TransactionType)
Commit a transaction of type ty.
Sourcefn rollback_transaction(&mut self, ty: TransactionType)
fn rollback_transaction(&mut self, ty: TransactionType)
Rollback a transaction of type ty.
Trait Implementations§
Source§impl Extension for Box<dyn Extension>
impl Extension for Box<dyn Extension>
Source§fn as_mut_any(&mut self) -> &mut dyn Any
fn as_mut_any(&mut self) -> &mut dyn Any
Return the extension as
&mut dyn Any. Read moreSource§fn start_transaction(&mut self, ty: TransactionType)
fn start_transaction(&mut self, ty: TransactionType)
Start a transaction of type
ty.Source§fn commit_transaction(&mut self, ty: TransactionType)
fn commit_transaction(&mut self, ty: TransactionType)
Commit a transaction of type
ty.Source§fn rollback_transaction(&mut self, ty: TransactionType)
fn rollback_transaction(&mut self, ty: TransactionType)
Rollback a transaction of type
ty.