pub mod a2a;
pub mod email;
use crate::attestation::types::{Claim, EvidenceRef, EvidenceVerificationResult};
use crate::error::JacsError;
use serde_json::Value;
pub trait EvidenceAdapter: Send + Sync + std::fmt::Debug {
fn kind(&self) -> &str;
fn normalize(
&self,
raw: &[u8],
metadata: &Value,
) -> Result<(Vec<Claim>, EvidenceRef), JacsError>;
fn verify_evidence(
&self,
evidence: &EvidenceRef,
) -> Result<EvidenceVerificationResult, JacsError>;
}
pub fn default_adapters() -> Vec<Box<dyn EvidenceAdapter>> {
vec![Box::new(a2a::A2aAdapter), Box::new(email::EmailAdapter)]
}