File: BasicInlineContainer.swift

package info (click to toggle)
swiftlang 6.1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,791,532 kB
  • sloc: cpp: 9,901,743; ansic: 2,201,431; asm: 1,091,827; python: 308,252; objc: 82,166; f90: 80,126; lisp: 38,358; pascal: 25,559; sh: 20,429; ml: 5,058; perl: 4,745; makefile: 4,484; awk: 3,535; javascript: 3,018; xml: 918; fortran: 664; cs: 573; ruby: 396
file content (34 lines) | stat: -rw-r--r-- 1,410 bytes parent folder | download
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
/*
 This source file is part of the Swift.org open source project

 Copyright (c) 2021 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 block or inline markup element that can contain only `InlineMarkup` elements and doesn't require any other information.
public protocol BasicInlineContainer: InlineContainer {
    /// Create this element with a sequence of inline markup elements.
    init(_ children: some Sequence<InlineMarkup>)

    /// Create this element with a sequence of inline markup elements, and optionally inherit the source range from those elements.
    init(_ children: some Sequence<InlineMarkup>, inheritSourceRange: Bool)
}

extension BasicInlineContainer {
    /// Create this element with a sequence of inline markup elements.
    public init(_ children: InlineMarkup...) {
        self.init(children)
    }

    public init(_ children: InlineMarkup..., inheritSourceRange: Bool) {
        self.init(children, inheritSourceRange: inheritSourceRange)
    }

    /// Default implementation for `init(_:inheritSourceRange:)` that discards the `inheritSourceRange` parameter.
    public init(_ children: some Sequence<InlineMarkup>, inheritSourceRange: Bool) {
        self.init(children)
    }
}