42 lines
1.1 KiB
Swift
Raw Normal View History

//===----------------------------------------------------------------------===//
//
// This source file is part of the SwiftLibs open source project
//
// Copyright (c) 2023 Röck+Cöde VoF. and the SwiftLibs project authors
// Licensed under the EUPL 1.2 or later.
//
// See LICENSE.txt for license information
// See CONTRIBUTORS.txt for the list of SwiftLibs project authors
//
//===----------------------------------------------------------------------===//
public extension Bool {
// MARK: Initialisers
/// Initialise a boolean primitive out of a given string.
/// - Parameter string: A string to initialise the boolean with.
init(_ string: String) {
let strings: [String] = [
.Constants.oneNumber,
.Constants.oneWord,
.Constants.true,
.Constants.yes
]
self = strings.contains(string.lowercased())
}
}
// MARK: - String+Constants
private extension String {
enum Constants {
static let yes = "yes"
static let `true` = "true"
static let oneWord = "one"
static let oneNumber = "1"
}
}