mockforge_plugin_core/
async_trait.rs1use crate::types::{PluginError, PluginMetadata, ResolutionContext};
7use async_trait::async_trait;
8
9#[async_trait]
11pub trait TokenResolver: Send + Sync {
12 fn can_resolve(&self, token: &str) -> bool;
14
15 async fn resolve_token(
17 &self,
18 token: &str,
19 context: &ResolutionContext,
20 ) -> Result<String, PluginError>;
21
22 fn get_metadata(&self) -> PluginMetadata;
24
25 fn validate(&self) -> Result<(), PluginError> {
27 Ok(())
28 }
29}
30#[cfg(test)]
31mod tests {
32 use super::*;
33
34 #[test]
35 fn test_trait_definition() {
36 let _ = std::marker::PhantomData::<&dyn TokenResolver>;
38 }
39}