1use crate::Context;
2use auto_impl::auto_impl;
3use context_interface::{Block, Cfg, Database, Journal, Transaction};
4
5#[auto_impl(&mut, Box)]
6pub trait ContextSetters {
7 type Tx: Transaction;
8 type Block: Block;
9
10 fn set_tx(&mut self, tx: Self::Tx);
11 fn set_block(&mut self, block: Self::Block);
12}
13
14impl<BLOCK, TX, CFG, DB, JOURNAL, CHAIN> ContextSetters
15 for Context<BLOCK, TX, CFG, DB, JOURNAL, CHAIN>
16where
17 BLOCK: Block,
18 TX: Transaction,
19 CFG: Cfg,
20 DB: Database,
21 JOURNAL: Journal<Database = DB>,
22{
23 type Tx = TX;
24 type Block = BLOCK;
25
26 fn set_tx(&mut self, tx: Self::Tx) {
27 self.tx = tx;
28 }
29
30 fn set_block(&mut self, block: Self::Block) {
31 self.block = block;
32 }
33}