Merge SingletonProviderContext with OtherModuleProviderContext
Bug: 358425833 Test: CI Change-Id: I8e3f40dc3cfc5337008b419801f8e6bf2d48e8b2
This commit is contained in:
@@ -14,6 +14,8 @@ var _ OtherModuleProviderContext = BaseModuleContext(nil)
|
||||
var _ OtherModuleProviderContext = ModuleContext(nil)
|
||||
var _ OtherModuleProviderContext = BottomUpMutatorContext(nil)
|
||||
var _ OtherModuleProviderContext = TopDownMutatorContext(nil)
|
||||
var _ OtherModuleProviderContext = SingletonContext(nil)
|
||||
var _ OtherModuleProviderContext = (*TestContext)(nil)
|
||||
|
||||
// OtherModuleProvider reads the provider for the given module. If the provider has been set the value is
|
||||
// returned and the boolean is true. If it has not been set the zero value of the provider's type is returned
|
||||
@@ -56,26 +58,6 @@ func ModuleProvider[K any](ctx ModuleProviderContext, provider blueprint.Provide
|
||||
return value.(K), ok
|
||||
}
|
||||
|
||||
type SingletonModuleProviderContext interface {
|
||||
moduleProvider(blueprint.Module, blueprint.AnyProviderKey) (any, bool)
|
||||
}
|
||||
|
||||
var _ SingletonModuleProviderContext = SingletonContext(nil)
|
||||
var _ SingletonModuleProviderContext = (*TestContext)(nil)
|
||||
|
||||
// SingletonModuleProvider wraps blueprint.SingletonModuleProvider to provide a type-safe method to retrieve the value
|
||||
// of the given provider from a module using a SingletonContext. If the provider has not been set the first return
|
||||
// value will be the zero value of the provider's type, and the second return value will be false. If the provider has
|
||||
// been set the second return value will be true.
|
||||
func SingletonModuleProvider[K any](ctx SingletonModuleProviderContext, module blueprint.Module, provider blueprint.ProviderKey[K]) (K, bool) {
|
||||
value, ok := ctx.moduleProvider(module, provider)
|
||||
if !ok {
|
||||
var k K
|
||||
return k, false
|
||||
}
|
||||
return value.(K), ok
|
||||
}
|
||||
|
||||
// SetProviderContext is a helper interface that is a subset of ModuleContext, BottomUpMutatorContext, or
|
||||
// TopDownMutatorContext for use in SetProvider.
|
||||
type SetProviderContext interface {
|
||||
|
Reference in New Issue
Block a user