#![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(tag = "$type")]
pub enum Basis {
#[serde(rename = "dev.idiolect.defs#basisSelfAsserted")]
BasisSelfAsserted(BasisSelfAsserted),
#[serde(rename = "dev.idiolect.defs#basisCommunityPolicy")]
BasisCommunityPolicy(BasisCommunityPolicy),
#[serde(rename = "dev.idiolect.defs#basisExternalSignal")]
BasisExternalSignal(BasisExternalSignal),
#[serde(rename = "dev.idiolect.defs#basisDerivedFromRecord")]
BasisDerivedFromRecord(BasisDerivedFromRecord),
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BasisCommunityPolicy {
pub community: idiolect_records::AtUri,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub policy_uri: Option<idiolect_records::Uri>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BasisDerivedFromRecord {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inference_rule: Option<String>,
pub source: StrongRecordRef,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BasisExternalSignal {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub signal_type: Option<String>,
pub url: idiolect_records::Uri,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BasisSelfAsserted {}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Caveat {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub affects: Option<Vec<String>>,
pub mode: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub severity: Option<CaveatSeverity>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct EncounterRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cid: Option<String>,
pub uri: idiolect_records::AtUri,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum Evidence {
#[serde(rename = "dev.idiolect.defs#evidenceDivergence")]
EvidenceDivergence(EvidenceDivergence),
#[serde(rename = "dev.idiolect.defs#evidenceLoss")]
EvidenceLoss(EvidenceLoss),
#[serde(rename = "dev.idiolect.defs#evidenceMismatch")]
EvidenceMismatch(EvidenceMismatch),
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct EvidenceDivergence {
pub path_a: Vec<LensRef>,
pub path_b: Vec<LensRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub witness_input: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct EvidenceLoss {
pub source_field: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target_schema: Option<SchemaRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub witness_input: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct EvidenceMismatch {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expected_equality_on: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub left_record: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub right_record: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum LensProperty {
#[serde(rename = "dev.idiolect.defs#lpRoundtrip")]
LpRoundtrip(LpRoundtrip),
#[serde(rename = "dev.idiolect.defs#lpGenerator")]
LpGenerator(LpGenerator),
#[serde(rename = "dev.idiolect.defs#lpTheorem")]
LpTheorem(LpTheorem),
#[serde(rename = "dev.idiolect.defs#lpConformance")]
LpConformance(LpConformance),
#[serde(rename = "dev.idiolect.defs#lpChecker")]
LpChecker(LpChecker),
#[serde(rename = "dev.idiolect.defs#lpConvergence")]
LpConvergence(LpConvergence),
#[serde(rename = "dev.idiolect.defs#lpCoercionLaw")]
LpCoercionLaw(LpCoercionLaw),
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LensRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cid: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub direction: Option<LensRefDirection>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uri: Option<idiolect_records::AtUri>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LpChecker {
pub checker: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ruleset: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LpCoercionLaw {
pub standard: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub violation_threshold: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LpConformance {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub clauses: Option<Vec<String>>,
pub standard: String,
pub version: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LpConvergence {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bound_steps: Option<i64>,
pub property: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LpGenerator {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub runner: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub seed: Option<i64>,
pub spec: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LpRoundtrip {
pub domain: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub generator: Option<idiolect_records::Uri>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LpTheorem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_variables: Option<Vec<String>>,
pub statement: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MaterialSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uri: Option<idiolect_records::Uri>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SchemaRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cid: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uri: Option<idiolect_records::AtUri>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StrongRecordRef {
pub cid: String,
pub uri: idiolect_records::AtUri,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Tool {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub commit: Option<String>,
pub name: String,
pub version: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Use {
pub action: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub action_vocabulary: Option<VocabRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub actor: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub material: Option<MaterialSpec>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub purpose: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub purpose_vocabulary: Option<VocabRef>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum Visibility {
PublicDetailed,
PublicMinimal,
PublicAggregateOnly,
CommunityScoped,
Private,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VocabRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cid: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uri: Option<idiolect_records::AtUri>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum CaveatSeverity {
Info,
Warn,
Error,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum LensRefDirection {
Unidirectional,
Bidirectional,
}