#![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 Encounter {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basis: Option<crate::generated::dev::idiolect::defs::Basis>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub downstream_result: Option<EncounterDownstreamResult>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub holder: Option<idiolect_records::Did>,
pub kind: EncounterKind,
pub lens: crate::generated::dev::idiolect::defs::LensRef,
pub occurred_at: idiolect_records::Datetime,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub produced_output: Option<idiolect_records::Cid>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_instance: Option<idiolect_records::Cid>,
pub source_schema: crate::generated::dev::idiolect::defs::SchemaRef,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target_schema: Option<crate::generated::dev::idiolect::defs::SchemaRef>,
pub r#use: crate::generated::dev::idiolect::defs::Use,
pub visibility: crate::generated::dev::idiolect::defs::Visibility,
}
impl crate::Record for Encounter {
const NSID: &'static str = "dev.idiolect.encounter";
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum EncounterDownstreamResult {
Success,
Corrected,
Rejected,
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum EncounterKind {
InvocationLog,
Curated,
RoundtripVerified,
Production,
Adversarial,
}