@@ -12,7 +12,6 @@ use spin_factors::{
12
12
ConfigureAppContext , Factor , FactorInstanceBuilder , InitContext , PrepareContext , RuntimeFactors ,
13
13
} ;
14
14
use spin_locked_app:: MetadataKey ;
15
- use util:: DefaultManagerGetter ;
16
15
17
16
/// Metadata key for key-value stores.
18
17
pub const KEY_VALUE_STORES_KEY : MetadataKey < Vec < String > > = MetadataKey :: new ( "key_value_stores" ) ;
@@ -21,19 +20,15 @@ pub use runtime_config::RuntimeConfig;
21
20
pub use util:: { CachingStoreManager , DelegatingStoreManager } ;
22
21
23
22
/// A factor that provides key-value storage.
23
+ #[ derive( Default ) ]
24
24
pub struct KeyValueFactor {
25
- default_label_resolver : Arc < dyn DefaultLabelResolver > ,
25
+ _priv : ( ) ,
26
26
}
27
27
28
28
impl KeyValueFactor {
29
29
/// Create a new KeyValueFactor.
30
- ///
31
- /// The `default_label_resolver` is used to resolve store managers for labels that
32
- /// are not defined in the runtime configuration.
33
- pub fn new ( default_label_resolver : impl DefaultLabelResolver + ' static ) -> Self {
34
- Self {
35
- default_label_resolver : Arc :: new ( default_label_resolver) ,
36
- }
30
+ pub fn new ( ) -> Self {
31
+ Self { _priv : ( ) }
37
32
}
38
33
}
39
34
@@ -53,11 +48,8 @@ impl Factor for KeyValueFactor {
53
48
mut ctx : ConfigureAppContext < T , Self > ,
54
49
) -> anyhow:: Result < Self :: AppState > {
55
50
let store_managers = ctx. take_runtime_config ( ) . unwrap_or_default ( ) ;
56
- let default_label_resolver = self . default_label_resolver . clone ( ) ;
57
- let default_fn: DefaultManagerGetter =
58
- Arc :: new ( move |label| default_label_resolver. default ( label) ) ;
59
51
60
- let delegating_manager = DelegatingStoreManager :: new ( store_managers, default_fn ) ;
52
+ let delegating_manager = DelegatingStoreManager :: new ( store_managers) ;
61
53
let caching_manager = CachingStoreManager :: new ( delegating_manager) ;
62
54
let store_manager_manager = Arc :: new ( caching_manager) ;
63
55
@@ -73,8 +65,7 @@ impl Factor for KeyValueFactor {
73
65
for label in & key_value_stores {
74
66
// TODO: port nicer errors from KeyValueComponent (via error type?)
75
67
ensure ! (
76
- store_manager_manager. is_defined( label)
77
- || self . default_label_resolver. default ( label) . is_some( ) ,
68
+ store_manager_manager. is_defined( label) ,
78
69
"unknown key_value_stores label {label:?} for component {component_id:?}"
79
70
) ;
80
71
}
@@ -164,17 +155,3 @@ impl FactorInstanceBuilder for InstanceBuilder {
164
155
Ok ( dispatch)
165
156
}
166
157
}
167
-
168
- /// Resolves a label to a default [`StoreManager`].
169
- pub trait DefaultLabelResolver : Send + Sync {
170
- /// If there is no runtime configuration for a given store label, return a default store manager.
171
- ///
172
- /// If `Option::None` is returned, the store is not allowed.
173
- fn default ( & self , label : & str ) -> Option < Arc < dyn StoreManager > > ;
174
- }
175
-
176
- impl < T : DefaultLabelResolver > DefaultLabelResolver for Arc < T > {
177
- fn default ( & self , label : & str ) -> Option < Arc < dyn StoreManager > > {
178
- self . as_ref ( ) . default ( label)
179
- }
180
- }
0 commit comments