protoflow_syntax/
analysis_error.rs

1// This is free and unencumbered software released into the public domain.
2
3#[cfg(feature = "std")]
4extern crate std;
5
6use crate::prelude::String;
7use displaydoc::Display;
8use error_stack::Result;
9use sysml_model::QualifiedName;
10
11pub type AnalysisResult<T> = Result<T, AnalysisError>;
12
13#[derive(Debug, Display)]
14pub enum AnalysisError {
15    /// Parse failure
16    ParseFailure,
17    /// Invalid import: `{0}`.
18    InvalidImport(QualifiedName),
19    /// Unknown name: `{0}`.
20    UnknownName(QualifiedName),
21    /// Other error: `{0}`.
22    Other(String),
23}
24
25#[cfg(feature = "std")]
26impl std::error::Error for AnalysisError {}
27
28#[cfg(not(feature = "std"))]
29impl error_stack::Context for AnalysisError {}