use std::sync::Arc; use tokio::sync::RwLock; use tokio_util::sync::CancellationToken; use prometeu_analysis::FileDB; #[derive(Default)] pub struct AnalysisDb { pub file_db: FileDB, // Os campos abaixo serão conectados conforme PR-03/04/05 (podem começar como None) // pub ast: Option, // pub symbols: Option, // pub types: Option, // pub diagnostics: Vec, /// Incrementa a cada rebuild concluído com sucesso pub revision: u64, /// Cancel token do último rebuild em progresso (se houver) pub active_rebuild: Option, } pub type SharedDb = Arc>;