-
Notifications
You must be signed in to change notification settings - Fork 10
DerivedEnvironment
tgrapperon edited this page Feb 24, 2022
·
8 revisions
Use this property wrapper to declare some child GlobalEnvironment in a
GlobalEnvironment parent.
@propertyWrapper
public final class DerivedEnvironment<Environment> where Environment: GlobalEnvironment You only need to specify the type used and its name. You don't need to instantiate the
type. For example, if ChildEnvironment is some GlobalEnvironment, you can install a
representant in ParentEnvironment as:
struct ParentEnvironment: GlobalEnvironment {
@DerivedEnvironment<ChildEnvironment> var child
}.This exposes a var child: ChildEnvironment read-only property in the ParentEnvironment.
When using GlobalEnvironment, the principal use of this property wrapper is to define
DependencyAlias's using the AliasBuilder closure from the intializers:
struct ParentEnvironment: GlobalEnvironment {
@DerivedEnvironment<ChildEnvironment>(aliases: {
$0.alias(\.main, to: \.mainQueue)
}) var child
}See DerivedEnvironment discussion
public init(
wrappedValue: Environment,
aliases: (
(AliasBuilder<Environment>)
-> AliasBuilder<Environment>
)? = nil
) See DerivedEnvironment discussion
public init(aliases: ((AliasBuilder<Environment>) -> AliasBuilder<Environment>)? = nil) See DerivedEnvironment discussion
public init(
wrappedValue: Environment,
aliases: ((AliasBuilder<Environment>) -> AliasBuilder<Environment>)? = nil
) See DerivedEnvironment discussion
public init(aliases: ((AliasBuilder<Environment>) -> AliasBuilder<Environment>)? = nil) @available(
*, unavailable,
message: "@DerivedEnvironment should be used in a ComposableEnvironment class."
)
public var wrappedValue: Environment public var wrappedValue: Environment Generated at 2022-08-22T21:22:01+0000 using swift-doc 1.0.0-rc.1.