#[macro_use]
mod macros;
pub mod extractor;
pub mod parser;
#[cfg(feature = "update")]
pub mod updater;
pub mod value;
#[cfg(feature = "debug")]
pub mod debug;
#[cfg(feature = "config-management")]
pub mod config;
pub mod debugger;
pub use extractor::{
extract, ConfigurableExtractor, ExtractError, Extractor, ExtractorConfig,
};
#[cfg(feature = "update")]
pub use updater::{
update, ConfigurableUpdater, UpdateError, Updater, UpdaterConfig,
};
#[cfg(feature = "debug")]
pub use debug::{
DebugCapable, DebugConfig, DebugContext, DebugInfo, LogLevel, TimingStats,
};
#[cfg(feature = "debug")]
pub use debug::logger::{Logger, LoggerConfig};
#[cfg(feature = "debug")]
pub use debug::tracer::{ExecutionSummary, TraceEvent, TraceResult, Tracer};
#[cfg(feature = "debug")]
pub use debug::reporter::{
DiagnosticInfo, EnhancedError, ErrorReporter, ErrorType, FixSuggestion,
};
#[cfg(feature = "profiling")]
pub use debug::profiler::{MemoryProfiler, PerformanceMonitor, ProfileReport};
#[cfg(feature = "benchmark")]
pub use debug::benchmark::{
BenchmarkConfig, BenchmarkOutputFormat, BenchmarkResult, BenchmarkSuite,
};
#[cfg(feature = "config-management")]
pub use config::{ConfigError, ConfigManager, ConfigResult, XQPathConfig};
pub use debugger::{
Breakpoint, DataInspector, DebugCommand, DebugError, DebugResult,
DebugSession, QueryEvaluator, WatchPoint, XQPathDebugger,
};
pub use parser::{
ast::{ComparisonOp, ExpressionComplexity, LogicalOp, PathExpression},
evaluation::{
evaluate_path_expression, EvaluationError, ExpressionEvaluator,
},
functions::{AdvancedBuiltinFunction, BuiltinFunction, FunctionRegistry},
parsing::{parse_path_expression, ExpressionParser},
path::{parse_path, ParseError, PathSegment},
};
pub use value::format::{
detect_format, FormatError, FormatRegistry, JsonFormat, ValueFormat,
YamlFormat,
};
pub use value::json::{JsonPath, JsonSupport};
pub use value::yaml::{YamlFormatter, YamlSpecialValues, YamlSupport};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const fn has_update_feature() -> bool {
cfg!(feature = "update")
}
pub const fn has_debug_feature() -> bool {
cfg!(feature = "debug")
}