use serde::Deserialize;
#[derive(Debug, Clone, Deserialize)]
#[non_exhaustive]
pub struct ManifestAbi {
#[serde(default)]
pub methods: Vec<ManifestMethod>,
#[serde(default)]
pub events: Vec<ManifestEvent>,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct ManifestMethod {
pub name: String,
#[serde(default)]
pub parameters: Vec<ManifestParameter>,
#[serde(rename = "returntype")]
pub return_type: String,
#[serde(default)]
pub offset: Option<i32>,
#[serde(default)]
pub safe: bool,
}
#[derive(Debug, Clone, Deserialize)]
pub struct ManifestParameter {
pub name: String,
#[serde(rename = "type")]
pub kind: String,
}
#[derive(Debug, Clone, Deserialize)]
pub struct ManifestEvent {
pub name: String,
#[serde(default)]
pub parameters: Vec<ManifestParameter>,
}