Function solana_ledger::blockstore::traverse_children_mut
source · fn traverse_children_mut<F>(
db: &Database,
slot_meta: &Rc<RefCell<SlotMeta>>,
working_set: &HashMap<u64, SlotMetaWorkingSetEntry>,
passed_visisted_slots: &mut HashMap<u64, Rc<RefCell<SlotMeta>>>,
slot_function: F
) -> Result<()>where
F: Fn(&mut SlotMeta) -> bool,
Expand description
Traverse all the children (direct and indirect) of slot_meta
, and apply
slot_function
to each of the children (but not slot_meta
).
Arguments:
db
: the blockstore db that stores shreds and their metadata.
slot_meta
: the SlotMeta of the above slot
.
working_set
: a slot-id to SlotMetaWorkingSetEntry map which is used
to traverse the graph.
passed_visited_slots
: all the traversed slots which have passed the
slot_function. This may also include the input slot
.
slot_function
: a function which updates the SlotMeta of the visisted
slots and determine whether to further traverse the children slots of
a given slot.