fuel_core_interfaces/
block_importer.rs1use super::model::{
2 ConsensusVote,
3 FuelBlock,
4 SealedFuelBlock,
5};
6use crate::common::fuel_types::Bytes32;
7use std::sync::Arc;
8
9#[derive(Clone, Debug)]
10pub enum ImportBlockBroadcast {
11 PendingFuelBlockImported {
12 block: Arc<FuelBlock>,
13 },
14 SealedFuelBlockImported {
16 block: Arc<SealedFuelBlock>,
17 is_created_by_self: bool,
18 },
19}
20
21impl ImportBlockBroadcast {
22 pub fn block(&self) -> &FuelBlock {
23 match self {
24 Self::PendingFuelBlockImported { block } => block.as_ref(),
25 Self::SealedFuelBlockImported { block, .. } => &block.as_ref().block,
26 }
27 }
28}
29
30pub enum ImportBlockMpsc {
31 ImportSealedFuelBlock {
32 block: Arc<SealedFuelBlock>,
33 },
34 ImportFuelBlock {
35 block: Arc<FuelBlock>,
36 },
37 SealFuelBlock {
38 votes: Vec<ConsensusVote>,
39 block_id: Bytes32,
40 },
41 Stop,
42}