forked from tgrapperon/swift-composable-environment
-
Notifications
You must be signed in to change notification settings - Fork 0
DerivedEnvironment
maximkrouk edited this page May 5, 2022
·
1 revision
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-05-05T11:18:52+0000 using swift-doc 1.0.0-rc.1.