use crate::common;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ErrorCause {
#[serde(rename = "caused_by", default, skip_serializing_if = "Option::is_none")]
pub caused_by: Option<Box<common::ErrorCause>>,
#[serde(rename = "reason", default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
#[serde(
rename = "root_cause",
default,
skip_serializing_if = "Option::is_none"
)]
pub root_cause: Option<Vec<Box<common::ErrorCause>>>,
#[serde(
rename = "suppressed",
default,
skip_serializing_if = "Option::is_none"
)]
pub suppressed: Option<Vec<Box<common::ErrorCause>>>,
#[serde(rename = "type")]
pub r#type: String,
#[serde(
rename = "stack_trace",
default,
skip_serializing_if = "Option::is_none"
)]
pub stack_trace: Option<String>,
}
impl ErrorCause {
pub fn new(r#type: String) -> ErrorCause {
ErrorCause {
caused_by: None,
reason: None,
root_cause: None,
suppressed: None,
r#type,
stack_trace: None,
}
}
}