pub trait CheckIntegrity {
// Required methods
fn check_universal_ids<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Id>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn check_segments<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn check_isomorphic_graph<'life0, 'life1, 'async_trait>(
&'life0 self,
other: &'life1 dyn DagAlgorithm,
heads: NameSet,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
}Expand description
Integrity check functions.
Required Methods§
Sourcefn check_universal_ids<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Id>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn check_universal_ids<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Id>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Verify that universally known Ids (parents of merges) are actually
known locally.
Returns set of Ids that should be universally known but missing.
An empty set means all universally known Ids are known locally.
Check FirstAncestorConstraint::KnownUniversally for concepts of
“universally known”.
Sourcefn check_segments<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn check_segments<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Check segment properties: no cycles, no overlaps, no gaps etc.
This is only about the Ids, not about the vertex names.
Returns human readable messages about problems. No messages indicates there are no problems detected.
Sourcefn check_isomorphic_graph<'life0, 'life1, 'async_trait>(
&'life0 self,
other: &'life1 dyn DagAlgorithm,
heads: NameSet,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn check_isomorphic_graph<'life0, 'life1, 'async_trait>(
&'life0 self,
other: &'life1 dyn DagAlgorithm,
heads: NameSet,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Check that the subset of the current graph (ancestors of heads)
is isomorphic with the subset in the other graph.
Returns messages about where two graphs are different. No messages indicates two graphs are likely isomorphic.
Note: For performance, this function only checks the “shape” of the graph, without checking the (potentially lazy) vertex names.