1 2 3 4 5 6 7 8 9 10 11
use std::sync::Arc; /// Resolves every implementation registered for a service type. pub trait ManyResolver<T: ?Sized + Send + Sync> { fn resolve_many() -> Arc<[Arc<T>]>; } /// Resolves a keyed service: `K` → `Arc<S>`. pub trait KeyedResolver<K, S: ?Sized + Send + Sync + 'static> { fn resolve_keyed(key: K) -> Option<Arc<S>>; }