Skip to main content

oxilean_codegen/lcnf/
validationerror_traits.rs

1//! # ValidationError - Trait Implementations
2//!
3//! This module contains trait implementations for `ValidationError`.
4//!
5//! ## Implemented Traits
6//!
7//! - `Display`
8//! - `Error`
9//!
10//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
11
12use super::types::ValidationError;
13use std::fmt;
14
15impl fmt::Display for ValidationError {
16    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
17        match self {
18            ValidationError::UnboundVariable(id) => write!(f, "Unbound variable: {}", id),
19            ValidationError::DuplicateBinding(id) => {
20                write!(f, "Duplicate binding: {}", id)
21            }
22            ValidationError::EmptyCase => write!(f, "Empty case expression"),
23            ValidationError::InvalidTag(name, tag) => {
24                write!(f, "Invalid tag {} for constructor {}", tag, name)
25            }
26            ValidationError::NonAtomicArgument => {
27                write!(f, "Non-atomic argument (violates ANF invariant)")
28            }
29        }
30    }
31}
32
33impl std::error::Error for ValidationError {}