#![forbid(unsafe_code)]
#![warn(missing_docs)]
pub mod diagnostic;
pub mod discovery;
pub mod error;
pub mod eval;
pub mod exporter;
pub mod graph;
pub mod ir;
pub mod loader;
pub mod parser;
pub mod pipeline;
pub mod prelude;
pub mod projection;
pub mod provider;
pub mod terragrunt;
pub(crate) mod util;
pub use diagnostic::{Diagnostic, LimitKind, Severity};
pub use error::{Error, Result, ValidationError};
pub use eval::{
EnvVarMode, EvalContext, EvalError, EvalLimits, EvaluatedComponent, Evaluator, FuncRegistry,
HclEvaluator,
};
pub use exporter::{
CompressionOpt, ExportOptions, ExportReport, ExportedFile, Exporter, ParquetExporter,
SecondaryTable,
};
pub use graph::{
DefaultGraphBuilder, ExternalModuleRef, GraphBuilder, GraphContext, GraphError, ModuleRegistry,
};
pub use ir::{
AccountId, Address, AssumeRole, AttributeMap, BinaryOp, BlockKind, Component, ComponentId,
ComponentKind, DependencyBlock, Edge, EdgeKind, Environment, Expression, FileExt,
GenerateBlock, IncludePath, Local, Map, Module, ModuleCall, ModuleId, ModuleSource, Output,
ProviderBlock, ProviderRef, Region, Resource, ResourceKind, SourceFile, Span, StateBackend,
SymbolKind, Symbolic, TerragruntConfig, UnaryOp, Value, Variable, Workspace,
};
pub use parser::{Parser, ParserBuilder, parse};
pub use pipeline::{DefaultPipeline, Pipeline, PipelineOptions};
pub use provider::{
DefaultProviderResolver, ProfileEntry, ProfileMap, ProviderContext, ProviderError,
ProviderResolver, SharedProfileMap, empty_profile_map, extract_account_id, load_aws_config,
load_yaml_profile_map,
};
pub use terragrunt::{FsTerragruntResolver, TerragruntError, TerragruntResolver, TgContext};
#[cfg(test)]
mod thread_safety {
use super::*;
const fn assert_send_sync<T: Send + Sync + 'static>() {}
#[test]
fn test_public_types_are_send_sync() {
assert_send_sync::<Workspace>();
assert_send_sync::<Component>();
assert_send_sync::<Module>();
assert_send_sync::<Resource>();
assert_send_sync::<Diagnostic>();
assert_send_sync::<Error>();
assert_send_sync::<ValidationError>();
assert_send_sync::<PipelineOptions>();
assert_send_sync::<Parser>();
assert_send_sync::<ParserBuilder>();
assert_send_sync::<Box<dyn Pipeline>>();
}
}