Skip to main content

xz_knowledge_graph/types/
attribute.rs

1use serde::{Deserialize, Serialize};
2
3use super::confidence::Confidence;
4use super::provenance::Provenance;
5
6/// Attribute value with confidence and provenance.
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct AttributeValue {
9    pub value: String,
10    pub confidence: Confidence,
11    pub provenance: Option<Provenance>,
12}
13
14impl AttributeValue {
15    pub fn new(value: impl Into<String>) -> Self {
16        Self {
17            value: value.into(),
18            confidence: Confidence::Medium,
19            provenance: None,
20        }
21    }
22
23    pub fn with_confidence(mut self, confidence: Confidence) -> Self {
24        self.confidence = confidence;
25        self
26    }
27}