pub const SPEC_VERSION: &str = "1.0.0-draft";
pub mod compatibility;
pub mod diagnostics;
pub mod metadata;
pub mod model;
pub mod parser;
pub mod plan;
pub mod validation;
#[cfg(feature = "cli")]
pub mod cli;
#[cfg(feature = "python")]
mod python;
pub use diagnostics::{
codes, inspect_contract, Diagnostic, DiagnosticCategory, DiagnosticReport, DiagnosticStage,
Severity, ValidationReport,
};
pub use model::{
parse_logical_type, type_compatible, LogicalType, TransformationContract, TypeCompatibility,
TypeParseError,
};
pub use parser::{parse, parse_file, parse_json, parse_yaml, DocumentFormat, ParseResult};
pub use validation::{validate, ValidationPhase};
#[must_use]
pub fn parse_and_validate(content: &[u8], format: DocumentFormat) -> ValidationReport {
parse(content, format).validate()
}
impl TransformationContract {
pub fn from_yaml(content: &str) -> ParseResult {
parse(content.as_bytes(), DocumentFormat::Yaml)
}
pub fn from_json(content: &str) -> ParseResult {
parse(content.as_bytes(), DocumentFormat::Json)
}
pub fn from_file(path: impl AsRef<std::path::Path>) -> miette::Result<ParseResult> {
parse_file(path)
}
}