use serde::Deserialize;
use serde_json::Value;
#[derive(Debug, Clone, Deserialize)]
pub struct ManifestPermission {
pub contract: ManifestPermissionContract,
#[serde(default)]
pub methods: ManifestPermissionMethods,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(untagged)]
pub enum ManifestPermissionContract {
Wildcard(String),
Hash {
hash: String,
},
Group {
group: String,
},
Other(Value),
}
#[derive(Debug, Clone, Deserialize)]
#[serde(untagged)]
pub enum ManifestPermissionMethods {
Wildcard(String),
Methods(Vec<String>),
}
impl Default for ManifestPermissionMethods {
fn default() -> Self {
ManifestPermissionMethods::Wildcard("*".into())
}
}