1pub mod check;
5pub mod staleness;
6pub mod structural;
7
8use crate::model::{Edge, Metadata, PROVENANCE_KEY};
9
10pub(crate) fn short_hash(hash: &str) -> &str {
13 &hash[..hash.len().min(13)]
14}
15
16pub(crate) fn provenance(metadata: &Metadata) -> Vec<String> {
18 metadata
19 .get(PROVENANCE_KEY)
20 .and_then(|v| v.as_array())
21 .map(|entries| {
22 entries
23 .iter()
24 .filter_map(|e| e.as_str().map(String::from))
25 .collect()
26 })
27 .unwrap_or_default()
28}
29
30pub(crate) fn edge_provenance(edge: &Edge) -> Vec<String> {
32 provenance(&edge.metadata)
33}