#![forbid(unsafe_code)]
#![deny(missing_docs)]
mod audit;
mod audit_types;
mod collection;
mod collection_build;
mod collection_diff;
mod collection_recompute;
mod collection_storage;
mod debug;
mod dependency;
mod dependency_validate;
mod derive;
mod error;
mod graph;
mod graph_support;
mod host_status;
mod ids;
mod input;
mod model;
mod node;
mod oracle;
mod output;
mod output_build;
mod output_frame;
mod output_payload;
mod output_reconcile;
mod read;
mod resource;
mod resource_build;
mod resource_key;
mod resource_reconcile;
mod scope;
mod scope_lifecycle;
mod topology;
mod trace;
mod transaction;
mod transaction_build;
mod transaction_trace_build;
mod transaction_types;
pub(crate) use audit_types::AuditState;
pub use audit_types::{
NodeChangeExplanation, OutputFrameExplanation, ResourceCoalescedTrace, ResourceCommandCause,
ResourceCommandExplanation, ScopeResourceInventory,
};
pub use collection::CollectionContext;
pub use collection_diff::{Added, MapDiff, Removed, SetDiff, Unchanged, Updated};
pub use dependency::DependencyList;
pub use derive::{DeriveContext, DeriveError};
pub use error::{
ErrorAuditEvent, ErrorCategory, ErrorTarget, FullRecomputeOutputMismatch,
FullRecomputeResourceMismatch, GraphError, GraphResult, OutputError, PlanError,
ResourcePayloadConflict,
};
pub use graph::Graph;
pub use host_status::{
HostResourceCommandState, HostResourceOutcome, HostResourceStatus, HostStatusClass,
classify_host_resource_status,
};
pub use ids::{NodeId, OutputKey, Revision, ScopeId, TransactionId};
pub use node::{CollectionNode, DerivedNode, InputNode, NodeHandle, NodeKind, NodeMeta};
pub use oracle::FullRecomputeCheck;
pub use output::{MaterializedOutput, OutputContext, OutputMeta, OutputOptions};
pub use output_frame::{ClearReason, OutputFrame, OutputFrameKind, RebaselineReason};
pub use output_payload::OutputPayload;
pub use resource::{PlanContext, ResourceCommand, ResourcePlan};
pub use resource_key::ResourceKey;
pub use scope::ScopeMeta;
pub use trace::{
OutputFrameKindTrace, OutputFrameTrace, ResourceCommandKind, ResourceCommandTrace,
TraceMismatch, TransactionTrace, assert_transaction_traces_match,
};
pub use transaction::Transaction;
pub use transaction_types::{
AuditEntry, AuditEvent, AuditExplanationLevel, CollectionDiffKind, CollectionDiffTrace,
InvariantResultTrace, ScopeLifecycleKind, ScopeLifecycleTrace, StagedInputChange,
StagedInputOutcome, TransactionOptions, TransactionPhase, TransactionResult,
};
pub mod testing {
pub use crate::model::{ModelGenerator, ModelScript, ModelStep, ModelTopology};
}