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)
| 22 | /// |
| 23 | /// Ordered vector of (sequence, hash) pairs. |
| 24 | pub 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 | /// |
no test coverage detected