File: NativeLanguage.swift

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (31 lines) | stat: -rw-r--r-- 1,023 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
/*
 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
*/

import Foundation

/// A set of functions providing support for constructing human language phrases
/// for use alongside code documentation.
protocol LanguageConstructible {
    /// Returns all the separators to insert between items of a list.
    func listSeparators(itemsCount: Int, listType: NativeLanguage.ListType) -> [String]
}

/// A structure allowing for adding further languages in the future.
public struct NativeLanguage {
    enum ListType {
        /// Signifies a list of alternative options, e.g. "One or two".
        case options
        
        /// Signifies a list of union items, e.g. "One and two".
        case union
    }
    
    static let english = EnglishLanguage()
}