Skip to main content

regorus/target/
error.rs

1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4use crate::{format, Rc};
5
6type String = Rc<str>;
7
8/// Error type for target parsing operations.
9#[derive(Debug, Clone, thiserror::Error)]
10pub enum TargetError {
11    /// JSON parsing error
12    #[error("JSON parse error: {0}")]
13    JsonParseError(String),
14    /// Target deserialization error
15    #[error("Deserialization error: {0}")]
16    DeserializationError(String),
17    /// Duplicate constant value error
18    #[error("Duplicate constant value: {0}")]
19    DuplicateConstantValue(String),
20    /// Multiple default resource schemas error
21    #[error("Multiple default schemas: {0}")]
22    MultipleDefaultSchemas(String),
23    /// Empty resource schemas error
24    #[error("Empty resource schemas: {0}")]
25    EmptyResourceSchemas(String),
26    /// Empty effect schemas error
27    #[error("Empty effect schemas: {0}")]
28    EmptyEffectSchemas(String),
29}
30
31impl From<serde_json::Error> for TargetError {
32    fn from(error: serde_json::Error) -> Self {
33        TargetError::JsonParseError(format!("{}", error).into())
34    }
35}