MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / get_view_changes

Function get_view_changes

atomic-repository/src/apply/queries.rs:24–46  ·  view source on GitHub ↗

Get all change hashes in a view. Returns the hashes in order from oldest (sequence 0) to newest. # Arguments `txn` - Read transaction `view` - The view to get changes from # Returns Ordered vector of (sequence, hash) pairs.

(txn: &T, view: &ViewState)

Source from the content-addressed store, hash-verified

22///
23/// Ordered vector of (sequence, hash) pairs.
24pub fn get_view_changes<T: ViewTxnT>(txn: &T, view: &ViewState) -> InsertResult<Vec<(u64, Hash)>> {
25 let mut changes = Vec::new();
26
27 let iter = txn
28 .iter_changes(view, 0)
29 .map_err(|e| InsertError::Database(e.to_string()))?;
30
31 for result in iter {
32 let (seq, node_id, _merkle) = result.map_err(|e| InsertError::Database(e.to_string()))?;
33
34 // Get external hash
35 let hash = txn
36 .get_external(node_id)
37 .map_err(|e| InsertError::Database(e.to_string()))?
38 .ok_or_else(|| {
39 InsertError::Internal(format!("Change {} has no external hash", node_id.0))
40 })?;
41
42 changes.push((seq, hash));
43 }
44
45 Ok(changes)
46}
47
48/// Get changes that are in the source view but not in the target view.
49///

Callers 2

get_missing_changesFunction · 0.85

Calls 3

iter_changesMethod · 0.45
get_externalMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected