use crate::node::NodeId;
#[derive(Debug, Clone, PartialEq, Eq, thiserror::Error)]
pub enum AuditError {
#[error("duplicate node id {0}")]
DuplicateId(NodeId),
#[error("node {node} references missing node {target}")]
DanglingReference {
node: NodeId,
target: NodeId,
},
#[error("node {node} is part of a parent cycle")]
Cycle {
node: NodeId,
},
#[error("interactive node {0} has no accessible name")]
MissingAccessibleName(NodeId),
#[error("multiple nodes claim focus: {0:?}")]
MultipleFocus(Vec<NodeId>),
#[error("focused node {0} is unreachable from any root")]
UnreachableFocus(NodeId),
}