#![allow(
missing_docs,
clippy::doc_markdown,
clippy::struct_excessive_bools,
clippy::derive_partial_eq_without_eq
)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Recommendation {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub caveats: Option<String>,
pub conditions: String,
pub issuing_community: String,
pub lens_path: Vec<super::defs::LensRef>,
pub occurred_at: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub preconditions: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub required_verifications: Option<Vec<RecommendationRequiredVerifications>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supersedes: Option<String>,
}
impl crate::Record for Recommendation {
const NSID: &'static str = "dev.idiolect.recommendation";
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum RecommendationRequiredVerifications {
RoundtripTest,
PropertyTest,
FormalProof,
ConformanceTest,
StaticCheck,
ConvergencePreserving,
}