systemprompt_extension/context.rs
1use std::sync::Arc;
2use systemprompt_traits::{ConfigProvider, DatabaseHandle};
3
4pub trait ExtensionContext: Send + Sync {
5 fn config(&self) -> Arc<dyn ConfigProvider>;
6
7 fn database(&self) -> Arc<dyn DatabaseHandle>;
8
9 fn get_extension(&self, id: &str) -> Option<Arc<dyn crate::Extension>>;
10
11 fn has_extension(&self, id: &str) -> bool {
12 self.get_extension(id).is_some()
13 }
14}
15
16pub type DynExtensionContext = Arc<dyn ExtensionContext>;