-
Notifications
You must be signed in to change notification settings - Fork 140
/
Copy pathFeatureFlags.swift
60 lines (48 loc) · 2.8 KB
/
FeatureFlags.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*
This source file is part of the Swift.org open source project
Copyright (c) 2021-2022 Apple Inc. and the Swift project authors
Licensed under Apache License v2.0 with Runtime Library Exception
See https://swift.org/LICENSE.txt for license information
See https://swift.org/CONTRIBUTORS.txt for Swift project authors
*/
/// A set of feature flags that conditionally enable (usually experimental) behavior in Swift-DocC.
public struct FeatureFlags: Codable {
/// The current feature flags that Swift-DocC uses to conditionally enable
/// (usually experimental) behavior in Swift-DocC.
public static var current = FeatureFlags()
/// Whether or not experimental support for device frames on images and video is enabled.
public var isExperimentalDeviceFrameSupportEnabled = false
/// Whether or not experimental support for emitting a serialized version of the local link resolution information is enabled.
public var isExperimentalLinkHierarchySerializationEnabled = false
/// Whether or not experimental support for combining overloaded symbol pages is enabled.
public var isExperimentalOverloadedSymbolPresentationEnabled = false
/// Whether experimental support for automatically rendering links on symbol documentation to articles
/// that mention that symbol.
public var isExperimentalMentionedInEnabled = false
/// Whether or not support for validating parameters and return value documentation is enabled.
public var isParametersAndReturnsValidationEnabled = true
@available(*, deprecated, renamed: "isParametersAndReturnsValidationEnabled", message: "Use 'isParametersAndReturnsValidationEnabled' instead. This deprecated API will be removed after 6.1 is released")
public var isExperimentalParametersAndReturnsValidationEnabled: Bool {
get { isParametersAndReturnsValidationEnabled }
set { isParametersAndReturnsValidationEnabled = newValue }
}
/// Whether or not experimental support for formatting Swift symbol
/// declarations using swift-format is enabled.
public var isExperimentalDeclarationFormattingEnabled = false
/// Creates a set of feature flags with the given values.
///
/// - Parameters:
/// - additionalFlags: Any additional flags to set.
///
/// This field allows clients to set feature flags without adding new API.
public init(
additionalFlags: [String : Bool] = [:]
) {
}
/// Set feature flags that were loaded from a bundle's Info.plist.
internal mutating func loadFlagsFromBundle(_ bundleFlags: DocumentationBundle.Info.BundleFeatureFlags) {
if let overloadsPresentation = bundleFlags.experimentalOverloadedSymbolPresentation {
self.isExperimentalOverloadedSymbolPresentationEnabled = overloadsPresentation
}
}
}