Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions Sources/DevConfiguration/Core/ConfigVariableReader.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,26 @@ import Synchronization
/// The reader integrates with an access reporter to provide telemetry and observability for all configuration access.
///
/// To use a config variable reader, first define your configuration variables using ``ConfigVariable``. Each variable
/// specifies its key, type, default value, and secrecy level:
/// specifies its key, type, and default value:
///
/// extension ConfigVariable where Value == Bool {
/// static let darkMode = ConfigVariable(
/// key: "dark_mode",
/// defaultValue: false,
/// secrecy: .auto
/// static let isDarkModeEnabled = ConfigVariable(
/// key: "dark_mode_enabled",
/// defaultValue: false
/// )
/// }
///
/// Then create a reader with your providers and query the variable:
///
/// let reader = ConfigVariableReader(
/// namedProviders: [
/// .init(InMemoryProvider(values: ["dark_mode": "true"]), displayName: "In-Memory")
/// .init(InMemoryProvider(values: ["dark_mode_enabled": "true"]), displayName: "In-Memory"),
/// .init(EnvironmentVariablesProvider(), displayName: "Environment"),
/// ],
/// eventBus: eventBus
/// )
///
/// let darkMode = reader[.darkMode] // true
/// let isDarkModeEnabled = reader[.isDarkModeEnabled] // true
///
/// The reader never throws. If resolution fails, it returns the variable’s default value and posts a
/// ``ConfigVariableAccessFailedEvent`` to the event bus.
Expand Down
16 changes: 8 additions & 8 deletions Sources/DevConfiguration/Metadata/ConfigVariableMetadata.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ import Foundation
/// Define custom metadata keys by creating types conforming to ``ConfigVariableMetadataKey`` and extending
/// `ConfigVariableMetadata` with convenience properties:
///
/// private struct ProjectMetadataKey: ConfigVariableMetadataKey {
/// private struct ProjectNameMetadataKey: ConfigVariableMetadataKey {
/// static let defaultValue: String? = nil
/// static let keyDisplayText = "Project"
/// }
///
/// extension ConfigVariableMetadata {
/// var project: String? {
/// get { self[ProjectMetadataKey.self] }
/// set { self[ProjectMetadataKey.self] = newValue }
/// var projectName: String? {
/// get { self[ProjectNameMetadataKey.self] }
/// set { self[ProjectNameMetadataKey.self] = newValue }
/// }
/// }
///
Expand Down Expand Up @@ -122,17 +122,17 @@ public struct ConfigVariableMetadata: Hashable, Sendable {
/// To define a new metadata key, create a private type that conforms to `ConfigVariableMetadataKey` and implement the
/// required properties:
///
/// private struct projectMetadataKey: ConfigVariableMetadataKey {
/// private struct ProjectNameMetadataKey: ConfigVariableMetadataKey {
/// static let defaultValue: String? = nil
/// static let keyDisplayText: String = "Project"
/// }
///
/// Then extend `ConfigVariableMetadata` with a convenience property to access the value:
///
/// extension ConfigVariableMetadata {
/// var project: String? {
/// get { self[ProjectMetadataKey.self] }
/// set { self[ProjectMetadataKey.self] = newValue }
/// var projectName: String? {
/// get { self[ProjectNameMetadataKey.self] }
/// set { self[ProjectNameMetadataKey.self] = newValue }
/// }
/// }
///
Expand Down
Loading