cairo_lang_doc/
signature_errors.rs1use std::fmt;
2
3use cairo_lang_diagnostics::DiagnosticAdded;
4
5#[derive(Debug)]
6pub enum SignatureError {
7 FailedRetrievingSemanticData(String),
8 FailedWritingSignature(String),
9 FailedWritingSignatureDiagnostic(DiagnosticAdded),
10 FailedWritingSignatureFormatter(fmt::Error),
11}
12
13impl fmt::Display for SignatureError {
14 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
15 match self {
16 SignatureError::FailedRetrievingSemanticData(full_path) => {
17 write!(f, "{full_path:?} Failed retrieving semantic data.")
18 }
19 SignatureError::FailedWritingSignature(full_path) => {
20 write!(f, "{full_path:?} Failed writing signature.")
21 }
22 SignatureError::FailedWritingSignatureDiagnostic(diagnostics) => {
23 write!(f, "Failed writing signature. {diagnostics:?}")
24 }
25 SignatureError::FailedWritingSignatureFormatter(e) => {
26 write!(f, "Failed writing signature formatter. {e:?}")
27 }
28 }
29 }
30}
31
32impl From<fmt::Error> for SignatureError {
33 fn from(e: fmt::Error) -> Self {
34 SignatureError::FailedWritingSignatureFormatter(e)
35 }
36}
37
38impl From<SignatureError> for fmt::Error {
39 fn from(_: SignatureError) -> Self {
40 fmt::Error
41 }
42}
43
44impl From<DiagnosticAdded> for SignatureError {
45 fn from(e: DiagnosticAdded) -> Self {
46 SignatureError::FailedWritingSignatureDiagnostic(e)
47 }
48}