use alien_error::AlienErrorData;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, AlienErrorData, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum ErrorData {
#[error(
code = "GRPC_SERVICE_UNAVAILABLE",
message = "gRPC service '{service}' unavailable at endpoint '{endpoint}': {reason}",
retryable = "true",
internal = "false",
http_status_code = 503
)]
GrpcServiceUnavailable {
service: String,
endpoint: String,
reason: String,
},
#[error(
code = "SERVER_BIND_FAILED",
message = "Failed to bind server to address '{address}': {reason}",
retryable = "true",
internal = "true",
http_status_code = 500
)]
ServerBindFailed {
address: String,
reason: String,
},
}
pub type Result<T> = alien_error::Result<T, ErrorData>;