Skip to main content

tensorlogic_adapters/
error.rs

1//! Error types for adapters.
2
3use thiserror::Error;
4
5#[derive(Error, Debug)]
6pub enum AdapterError {
7    #[error("Domain '{0}' not found")]
8    DomainNotFound(String),
9    #[error("Predicate '{0}' not found")]
10    PredicateNotFound(String),
11    #[error("Variable '{0}' not bound to any domain")]
12    UnboundVariable(String),
13    #[error("Arity mismatch for predicate '{name}': expected {expected}, found {found}")]
14    ArityMismatch {
15        name: String,
16        expected: usize,
17        found: usize,
18    },
19    #[error("Invalid domain element: {0}")]
20    InvalidDomainElement(String),
21    #[error("Invalid parametric type: {0}")]
22    InvalidParametricType(String),
23    #[error("Unknown domain: {0}")]
24    UnknownDomain(String),
25    #[error("Unknown predicate: {0}")]
26    UnknownPredicate(String),
27    #[error("Duplicate domain: {0}")]
28    DuplicateDomain(String),
29    #[error("Invalid cardinality: {0}")]
30    InvalidCardinality(String),
31    #[error("Invalid operation: {0}")]
32    InvalidOperation(String),
33}