#![doc = include_str!("../doc/architecture.md")]
#![no_std]
#![forbid(unsafe_code)]
#![deny(missing_docs)]
#[cfg(feature = "alloc")]
extern crate alloc;
#[cfg(feature = "std")]
extern crate std;
pub mod diagnostic;
pub mod engine;
pub mod error;
pub mod output;
pub mod probe;
pub mod types;
#[cfg(any(feature = "alloc", feature = "std"))]
pub mod builder;
pub mod enumerator;
#[cfg(any(feature = "alloc", feature = "std"))]
pub mod ranker;
pub use diagnostic::Diagnostic;
pub use engine::rule::TaggingAdapter;
pub use engine::{CheckList, MAX_WARNINGS};
pub use error::Error;
pub use output::warning::{LimitSource, TaggedViolation, Violation, Warning};
pub use probe::is_config_viable;
pub use types::{CableCapabilities, CandidateConfig, SinkCapabilities, SourceCapabilities};
#[cfg(any(feature = "alloc", feature = "std"))]
pub use builder::{NegotiationLog, NegotiatorBuilder};
#[cfg(any(feature = "alloc", feature = "std"))]
pub use output::config::NegotiatedConfig;
#[cfg(any(feature = "alloc", feature = "std"))]
pub use output::rejection::RejectedConfig;
#[cfg(any(feature = "alloc", feature = "std"))]
pub use output::trace::ReasoningTrace;
#[cfg(any(feature = "alloc", feature = "std"))]
pub use types::{SinkBuildWarning, SupportedModes, sink_capabilities_from_display};