sem_core/parser/plugin.rs
1use crate::model::entity::SemanticEntity;
2
3pub trait SemanticParserPlugin: Send + Sync {
4 fn id(&self) -> &str;
5 fn extensions(&self) -> &[&str];
6 fn extract_entities(&self, content: &str, file_path: &str) -> Vec<SemanticEntity>;
7 fn compute_similarity(&self, a: &SemanticEntity, b: &SemanticEntity) -> f64 {
8 crate::model::identity::default_similarity(a, b)
9 }
10}