use aion_core::PackageVersion;
use aion_package::ContentHash;
use crate::error::EngineError;
pub mod catalog;
pub mod load;
pub mod persistence;
pub mod version_info;
pub use catalog::{PinnedWorkflow, WorkflowCatalog};
pub use load::{LoadOutcome, LoadedWorkflow};
pub use version_info::WorkflowVersionInfo;
#[must_use]
pub fn package_version_of(hash: &ContentHash) -> PackageVersion {
PackageVersion::new(hash.to_string())
}
pub fn parse_package_version(
workflow_type: &str,
version: &PackageVersion,
) -> Result<ContentHash, EngineError> {
version
.as_str()
.parse::<ContentHash>()
.map_err(|error| EngineError::Load {
reason: format!(
"workflow `{workflow_type}` recorded package version `{version}` that is not a canonical content hash: {error}"
),
})
}