pub mod pha;
pub mod rootprint;
pub use pha::{EmbeddedProof, ExternalProofAttachment, PhaArtifact, PhaError, PHA_SCHEMA_V1};
pub use rootprint::{
equivalent as equivalent_rootprints, merge as merge_rootprints, replay as replay_rootprint,
try_equivalent as try_equivalent_rootprints, Rootprint, RootprintBranch, RootprintError,
RootprintId, RootprintReplayBranch, RootprintState, ROOTPRINT_SCHEMA_V1,
};
#[macro_export]
macro_rules! prove_with_rootprint {
(label: $label:expr, artifact: $artifact:expr $(,)?) => {
$crate::provenance::Rootprint::new($label, $artifact)
};
(
rootprint: $rootprint:expr,
fork: $parent:expr,
label: $label:expr,
artifact: $artifact:expr $(,)?
) => {
$rootprint.fork($parent, $label, $artifact)
};
(
rootprint: $rootprint:expr,
merge: [$left:expr, $right:expr],
label: $label:expr,
artifact: $artifact:expr $(,)?
) => {
$rootprint.merge($left, $right, $label, $artifact)
};
}