#![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 basis: Option<super::defs::Basis>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub caveats: Option<Vec<super::defs::Caveat>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub caveats_text: Option<String>,
pub conditions: Vec<RecommendationConditions>,
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<Vec<RecommendationPreconditions>>,
#[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, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConditionActionSubsumedBy {
pub action: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vocabulary: Option<super::defs::VocabRef>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConditionAnd {}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConditionDataHas {
pub property: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConditionNot {}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConditionOr {}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConditionPurposeSubsumedBy {
pub purpose: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vocabulary: Option<super::defs::VocabRef>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConditionSourceIs {
pub schema: super::defs::SchemaRef,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConditionTargetIs {
pub schema: super::defs::SchemaRef,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum RecommendationConditions {
#[serde(rename = "dev.idiolect.recommendation#conditionSourceIs")]
ConditionSourceIs(ConditionSourceIs),
#[serde(rename = "dev.idiolect.recommendation#conditionTargetIs")]
ConditionTargetIs(ConditionTargetIs),
#[serde(rename = "dev.idiolect.recommendation#conditionActionSubsumedBy")]
ConditionActionSubsumedBy(ConditionActionSubsumedBy),
#[serde(rename = "dev.idiolect.recommendation#conditionPurposeSubsumedBy")]
ConditionPurposeSubsumedBy(ConditionPurposeSubsumedBy),
#[serde(rename = "dev.idiolect.recommendation#conditionDataHas")]
ConditionDataHas(ConditionDataHas),
#[serde(rename = "dev.idiolect.recommendation#conditionAnd")]
ConditionAnd(ConditionAnd),
#[serde(rename = "dev.idiolect.recommendation#conditionOr")]
ConditionOr(ConditionOr),
#[serde(rename = "dev.idiolect.recommendation#conditionNot")]
ConditionNot(ConditionNot),
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum RecommendationPreconditions {
#[serde(rename = "dev.idiolect.recommendation#conditionSourceIs")]
ConditionSourceIs(ConditionSourceIs),
#[serde(rename = "dev.idiolect.recommendation#conditionTargetIs")]
ConditionTargetIs(ConditionTargetIs),
#[serde(rename = "dev.idiolect.recommendation#conditionActionSubsumedBy")]
ConditionActionSubsumedBy(ConditionActionSubsumedBy),
#[serde(rename = "dev.idiolect.recommendation#conditionPurposeSubsumedBy")]
ConditionPurposeSubsumedBy(ConditionPurposeSubsumedBy),
#[serde(rename = "dev.idiolect.recommendation#conditionDataHas")]
ConditionDataHas(ConditionDataHas),
#[serde(rename = "dev.idiolect.recommendation#conditionAnd")]
ConditionAnd(ConditionAnd),
#[serde(rename = "dev.idiolect.recommendation#conditionOr")]
ConditionOr(ConditionOr),
#[serde(rename = "dev.idiolect.recommendation#conditionNot")]
ConditionNot(ConditionNot),
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum RecommendationRequiredVerifications {
#[serde(rename = "dev.idiolect.defs#lpRoundtrip")]
LpRoundtrip(super::defs::LpRoundtrip),
#[serde(rename = "dev.idiolect.defs#lpGenerator")]
LpGenerator(super::defs::LpGenerator),
#[serde(rename = "dev.idiolect.defs#lpTheorem")]
LpTheorem(super::defs::LpTheorem),
#[serde(rename = "dev.idiolect.defs#lpConformance")]
LpConformance(super::defs::LpConformance),
#[serde(rename = "dev.idiolect.defs#lpChecker")]
LpChecker(super::defs::LpChecker),
#[serde(rename = "dev.idiolect.defs#lpConvergence")]
LpConvergence(super::defs::LpConvergence),
}