use crate::semantic_id::SemanticId;
use crate::semantic_provenance::SourceProvenance;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct SemanticReference {
pub kind: SemanticReferenceKind,
pub source: SemanticId,
pub target: SemanticId,
pub provenance: SourceProvenance,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
pub enum SemanticReferenceKind {
ActionState,
ComputedState,
ComputedComputed,
ComputedResource,
EffectState,
EffectComputed,
ProvidesContext,
ConsumesContext,
ResolvesToProvider,
EventMethod,
TemplateState,
TemplateComputed,
TemplateLocal,
FieldBindingField,
FieldBindingForm,
ValidationRuleField,
}