You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
939 B
27 lines
939 B
//
|
|
// Copyright © 2019 Swinject Contributors. All rights reserved.
|
|
//
|
|
|
|
/// The `Assembly` provides a means to organize your `Service` registration in logic groups which allows
|
|
/// the user to swap out different implementations of `Services` by providing different `Assembly` instances
|
|
/// to the `Assembler`
|
|
public protocol Assembly {
|
|
/// Provide hook for `Assembler` to load Services into the provided container
|
|
///
|
|
/// - parameter container: the container provided by the `Assembler`
|
|
///
|
|
func assemble(container: Container)
|
|
|
|
/// Provides a hook to the `Assembly` that will be called once the `Assembler` has loaded all `Assembly`
|
|
/// instances into the container.
|
|
///
|
|
/// - parameter resolver: the resolver that can resolve instances from the built container
|
|
///
|
|
func loaded(resolver: Resolver)
|
|
}
|
|
|
|
public extension Assembly {
|
|
func loaded(resolver _: Resolver) {
|
|
// no-op
|
|
}
|
|
}
|