use serde::{Deserialize, Serialize};
use thiserror::Error;
#[derive(Debug, Error, Serialize, Deserialize)]
pub enum RegoError {
#[error("Missing policy")]
MissingPolicy,
#[error("Failed to get policy params: {0}")]
FailedToGetPolicyParams(String),
#[error("Failed to validate params schema: {0}")]
FailedToValidateParamsSchema(String),
#[error("Failed to get policy config: {0}")]
FailedToGetPolicyConfig(String),
#[error("Failed to get policy entrypoint: {0}")]
FailedToGetPolicyEntrypoint(String),
#[error("Failed to get policy schema cid: {0}")]
FailedToGetPolicySchemaCid(String),
#[error("Failed to fetch policy schema json: {0}")]
FailedToFetchPolicySchemaJson(String),
#[error("Failed to decode policy schema json: {0}")]
FailedToDecodePolicySchemaJson(String),
#[error("Failed to parse schema: {0}")]
FailedToParseSchema(String),
#[error("Failed to parse intent: {0}")]
FailedToParseIntent(String),
#[error("Failed to parse policy data: {0}")]
FailedToParsePolicyData(String),
#[error("Policy data at address {address} contains invalid UTF-8: {error}")]
InvalidPolicyDataUtf8 {
address: String,
error: String,
},
#[error("Policy data at address {address} contains invalid JSON: {error}")]
InvalidPolicyDataJson {
address: String,
error: String,
},
#[error("Failed to evaluate task: {0}")]
FailedToEvaluateTask(String),
}