use serde::Serialize;
use serde::de::DeserializeOwned;
use super::{ContractError, ContractKind, ContractMetadata};
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ContractDocument<T> {
pub api_version: &'static str,
pub kind: &'static str,
pub metadata: ContractMetadata,
pub spec: T,
}
pub trait PlatformContract {
type Spec: Serialize + DeserializeOwned;
const KIND: ContractKind;
fn validate(_metadata: &ContractMetadata, _spec: &Self::Spec) -> Result<(), ContractError> {
Ok(())
}
}