diff --git a/Package.swift b/Package.swift index 061c09acd..fb6dd6f34 100644 --- a/Package.swift +++ b/Package.swift @@ -12,7 +12,7 @@ let package = Package( targets: [ .binaryTarget( name: "SoulverCore", - url: "https://github.com/soulverteam/SoulverCore/releases/download/1.3.1/SoulverCore.xcframework.zip", - checksum: "4ee4b40a4e67218639fb54de030934d37eb1c76228459857ab4972870d33d078"), + url: "https://github.com/soulverteam/SoulverCore/releases/download/1.4.0/SoulverCore.xcframework.zip", + checksum: "f67706273fb7ec8c7b2e60e6f2b1c0126ca20891daf5758e57244ec6d57a1d82"), ] ) diff --git a/SoulverCore.xcframework/Info.plist b/SoulverCore.xcframework/Info.plist index 47e6ca75a..dc00e50b2 100644 --- a/SoulverCore.xcframework/Info.plist +++ b/SoulverCore.xcframework/Info.plist @@ -19,18 +19,15 @@ LibraryIdentifier - ios-arm64_x86_64-simulator + ios-arm64 LibraryPath SoulverCore.framework SupportedArchitectures arm64 - x86_64 SupportedPlatform ios - SupportedPlatformVariant - simulator LibraryIdentifier @@ -49,15 +46,18 @@ LibraryIdentifier - ios-arm64 + ios-arm64_x86_64-simulator LibraryPath SoulverCore.framework SupportedArchitectures arm64 + x86_64 SupportedPlatform ios + SupportedPlatformVariant + simulator CFBundlePackageType diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore-Swift.h b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore-Swift.h index e2414a92a..30830a7e2 100644 --- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore-Swift.h +++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore-Swift.h @@ -1,4 +1,4 @@ -// Generated by Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// Generated by Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) #ifndef SOULVERCORE_SWIFT_H #define SOULVERCORE_SWIFT_H #pragma clang diagnostic push @@ -206,6 +206,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # pragma pop_macro("any") #endif +@class NSNumber; /// Subclass of Operation that adds support of asynchronous operations. ///
    diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Info.plist b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Info.plist index a548656f2..ef9e3aad9 100644 Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Info.plist and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Info.plist differ diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc index c39b7fdfd..8b6a6d2a3 100644 Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc differ diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface index 51b8e552c..4d8413357 100644 --- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface +++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target arm64-apple-ios13.6 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc index c39b7fdfd..8b6a6d2a3 100644 Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc differ diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface index 51b8e552c..4d8413357 100644 --- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface +++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target arm64-apple-ios13.6 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore index 566675550..de6d4d90e 100755 Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore differ diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/_CodeSignature/CodeResources b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/_CodeSignature/CodeResources index 5d9db442b..1c049c3d7 100644 --- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/_CodeSignature/CodeResources +++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/_CodeSignature/CodeResources @@ -6,7 +6,7 @@ Headers/SoulverCore-Swift.h - C7AIHgSI8t0fsqMAwVdbCa5Ki18= + aCBluMlOaa6iEU/4ZZNvwJazSSY= Headers/SoulverCore.h @@ -14,31 +14,31 @@ Info.plist - 41b5rfc/jhsQvPgXHRXhl3Bcy2o= + tjuIVmfLcecpOPCanBj2cwij6/I= Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc - MRX6Nxufw3samwkRMAGoBAqqvHw= + f0HPhL/gUn924wFKaXrKG54LbZs= Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface - bpOx24VEBL5fsZd5cnXRU6lKugc= + KGyhvpe0bqWg/pxAr890Zu7YjpY= Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftmodule - 77wipZQ9k5CiOfIua61BFMlbR6Y= + lH6j1ynevv3XtKILystZKsc2dLg= Modules/SoulverCore.swiftmodule/arm64.swiftdoc - MRX6Nxufw3samwkRMAGoBAqqvHw= + f0HPhL/gUn924wFKaXrKG54LbZs= Modules/SoulverCore.swiftmodule/arm64.swiftinterface - bpOx24VEBL5fsZd5cnXRU6lKugc= + KGyhvpe0bqWg/pxAr890Zu7YjpY= Modules/SoulverCore.swiftmodule/arm64.swiftmodule - 77wipZQ9k5CiOfIua61BFMlbR6Y= + lH6j1ynevv3XtKILystZKsc2dLg= Modules/module.modulemap @@ -138,7 +138,7 @@ hash - yOmTSUY2tP5UbixhFVe/eQIaRlg= + T1fY6yGBPqbnKiBmMxhL1u//wYY= optional @@ -393,7 +393,7 @@ hash2 - M/4x90GbKzfpuJrJZPSL1HdwGDfxkgz7kzMsT6Gm51w= + 2LaRetRIQPCeIwH6i3mwBk2puYbDN7bHTHaAKX3foSU= Headers/SoulverCore.h @@ -407,42 +407,42 @@ hash2 - cJr3OzpUYhYWJ3LTsGHvg5AmvtIY7Z8tPEYV+w1uARE= + oiiv9G7L1FbOhUXso5oVN4/j+KobYdYS8lPTiZqvVZI= Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface hash2 - VqfxJIkR50jbnBOaenSDUltQN0Iv5iEJUFQ6D779UPY= + 99YQSgueGNOxSXxbniITNWLm84KtjmjJCRYPnbuQN/A= Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftmodule hash2 - z/hczrceN4eixi8TNThU/EqxGAMZ7hOHC+o+DF9m6iM= + wa3v+44eIV8sArGmuTCQfQHcbJCqChEhrnmpYXmLWDA= Modules/SoulverCore.swiftmodule/arm64.swiftdoc hash2 - cJr3OzpUYhYWJ3LTsGHvg5AmvtIY7Z8tPEYV+w1uARE= + oiiv9G7L1FbOhUXso5oVN4/j+KobYdYS8lPTiZqvVZI= Modules/SoulverCore.swiftmodule/arm64.swiftinterface hash2 - VqfxJIkR50jbnBOaenSDUltQN0Iv5iEJUFQ6D779UPY= + 99YQSgueGNOxSXxbniITNWLm84KtjmjJCRYPnbuQN/A= Modules/SoulverCore.swiftmodule/arm64.swiftmodule hash2 - z/hczrceN4eixi8TNThU/EqxGAMZ7hOHC+o+DF9m6iM= + wa3v+44eIV8sArGmuTCQfQHcbJCqChEhrnmpYXmLWDA= Modules/module.modulemap @@ -546,7 +546,7 @@ hash2 - IlEn3hbZGuCjMSH9gZO+PFLqJ+5ww2JgW16wGmJsbrE= + 6yTfHuscCVEEzTuLAe3kM06BC3W+YpJ+18a+KuNIgpM= optional diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/CurrencyDescriptions.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/CurrencyDescriptions.json index a2af21f32..d64a82ccc 100644 --- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/CurrencyDescriptions.json +++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/CurrencyDescriptions.json @@ -711,8 +711,8 @@ }, "RON": { "aliases": [ - "romanian lei", - "romanian leis" + "romanian leu", + "romanian lei" ], "symbol": "RON" }, @@ -998,7 +998,7 @@ "MDL": { "aliases": [ "moldovan leu", - "moldovan leus" + "moldovan lei" ], "symbol": "MDL" }, @@ -1042,7 +1042,9 @@ "pence": { "aliases": [ "penny", - "pennies" + "pennies", + "british pence", + "GBX" ], "symbol": "pence" }, diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h index 53948c25c..d9c49f77d 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h +++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h @@ -1,6 +1,6 @@ #if 0 #elif defined(__arm64__) && __arm64__ -// Generated by Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// Generated by Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) #ifndef SOULVERCORE_SWIFT_H #define SOULVERCORE_SWIFT_H #pragma clang diagnostic push @@ -208,6 +208,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # pragma pop_macro("any") #endif +@class NSNumber; /// Subclass of Operation that adds support of asynchronous operations. ///
      @@ -241,7 +242,7 @@ SWIFT_CLASS("_TtC11SoulverCore21AsynchronousOperation") #endif #elif defined(__x86_64__) && __x86_64__ -// Generated by Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// Generated by Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) #ifndef SOULVERCORE_SWIFT_H #define SOULVERCORE_SWIFT_H #pragma clang diagnostic push @@ -449,6 +450,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # pragma pop_macro("any") #endif +@class NSNumber; /// Subclass of Operation that adds support of asynchronous operations. ///
        diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftdoc index 78d8f9e47..b01d5045b 100644 Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftdoc differ diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftinterface index 8a88d475b..6ca4906f1 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftinterface +++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target arm64-apple-ios13.6-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc index 78d8f9e47..b01d5045b 100644 Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc differ diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface index 8a88d475b..6ca4906f1 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface +++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target arm64-apple-ios13.6-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftdoc index 668377df4..bde1c8806 100644 Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftdoc differ diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftinterface index c11451d13..6caa506d8 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftinterface +++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target x86_64-apple-ios13.6-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc index 668377df4..bde1c8806 100644 Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc differ diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface index c11451d13..6caa506d8 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface +++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target x86_64-apple-ios13.6-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/Info.plist b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/Info.plist index dab75d41c..79dd12d0a 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/Info.plist +++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/Info.plist @@ -17,29 +17,29 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.3.1 + 1.4.0 CFBundleSupportedPlatforms MacOSX CFBundleVersion - 16 + 17 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 12D4e + 12E262 DTPlatformName macosx DTPlatformVersion - 11.1 + 11.3 DTSDKBuild - 20C63 + 20E214 DTSDKName - macosx11.1 + macosx11.3 DTXcode - 1240 + 1250 DTXcodeBuild - 12D4e + 12E262 LSMinimumSystemVersion 10.15 NSHumanReadableCopyright diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json index a2af21f32..d64a82ccc 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json +++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json @@ -711,8 +711,8 @@ }, "RON": { "aliases": [ - "romanian lei", - "romanian leis" + "romanian leu", + "romanian lei" ], "symbol": "RON" }, @@ -998,7 +998,7 @@ "MDL": { "aliases": [ "moldovan leu", - "moldovan leus" + "moldovan lei" ], "symbol": "MDL" }, @@ -1042,7 +1042,9 @@ "pence": { "aliases": [ "penny", - "pennies" + "pennies", + "british pence", + "GBX" ], "symbol": "pence" }, diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/SoulverCore b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/SoulverCore index b12eef715..b7b68d162 100755 Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/SoulverCore and b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/SoulverCore differ diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources index b3ddf7af6..2d2f11438 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources +++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources @@ -6,7 +6,7 @@ Resources/Info.plist - r4JY2h3Lxkro7HJHeJnBuCdRHgo= + ipKyS5J2nU4TxLOAj2SEtmIFzhY= Resources/de.lproj/Cities.json @@ -102,7 +102,7 @@ hash - yOmTSUY2tP5UbixhFVe/eQIaRlg= + T1fY6yGBPqbnKiBmMxhL1u//wYY= optional @@ -357,7 +357,7 @@ hash2 - 1Kv2EG7R8UWfMYYEbLha7mFHsRNB+bqWOoi4fktLoBw= + id+H2KZ1dfx0fQa0jKNmAsF+2z8vZTwMO3H2ot9CJfA= Headers/SoulverCore.h @@ -371,84 +371,84 @@ hash2 - dBEANyA0IcXv+Fga7reg/yVaWTfK2vq16svC+nZL0Mg= + rB12dCr2zNmYKaWS6mBycMRI8ioeteLVS1qgqVv2apQ= Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftinterface hash2 - rXZJCEBUJVVjStY95psmUvOtO5N7t4jUg6VjhV5KWu0= + ffCvt/bgSdqA2BQGCVXkgWzu8uf6OsKQVyO+EaLDEhE= Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftmodule hash2 - Kj1IyscoGo4Sgg4YnT49YkYARPy4GMfwqszEYYW+y9I= + 1aRBcJ/UnhbM+jtD0veLlvqDXk8tjhl3D72hPDVSpQY= Modules/SoulverCore.swiftmodule/arm64.swiftdoc hash2 - dBEANyA0IcXv+Fga7reg/yVaWTfK2vq16svC+nZL0Mg= + rB12dCr2zNmYKaWS6mBycMRI8ioeteLVS1qgqVv2apQ= Modules/SoulverCore.swiftmodule/arm64.swiftinterface hash2 - rXZJCEBUJVVjStY95psmUvOtO5N7t4jUg6VjhV5KWu0= + ffCvt/bgSdqA2BQGCVXkgWzu8uf6OsKQVyO+EaLDEhE= Modules/SoulverCore.swiftmodule/arm64.swiftmodule hash2 - Kj1IyscoGo4Sgg4YnT49YkYARPy4GMfwqszEYYW+y9I= + 1aRBcJ/UnhbM+jtD0veLlvqDXk8tjhl3D72hPDVSpQY= Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftdoc hash2 - ccphtiHDjphaTzGIJQu3EUoMC9l36ZrNOh2GuLSqfAo= + d3OodS3D2bGm8q801gH/FNsgu5mDcjmWnNmRnuOCxHQ= Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftinterface hash2 - HA+idfn2y6sOC4ympbO6bC1VsLkQCRQ0xb+cdxiC+DA= + IOQBFYu35m+BG1WxQmqfnKc9+s5YZwzr6Zu9XoMZtOc= Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftmodule hash2 - MxM/fsoenTQ5RWKAg0TovuiQmgCaVBgN72JnZKEMP5I= + vpDthCCxQmr4PnrKLS+gLfo73I9AJrS6q5/vaFIUCfY= Modules/SoulverCore.swiftmodule/x86_64.swiftdoc hash2 - ccphtiHDjphaTzGIJQu3EUoMC9l36ZrNOh2GuLSqfAo= + d3OodS3D2bGm8q801gH/FNsgu5mDcjmWnNmRnuOCxHQ= Modules/SoulverCore.swiftmodule/x86_64.swiftinterface hash2 - HA+idfn2y6sOC4ympbO6bC1VsLkQCRQ0xb+cdxiC+DA= + IOQBFYu35m+BG1WxQmqfnKc9+s5YZwzr6Zu9XoMZtOc= Modules/SoulverCore.swiftmodule/x86_64.swiftmodule hash2 - MxM/fsoenTQ5RWKAg0TovuiQmgCaVBgN72JnZKEMP5I= + vpDthCCxQmr4PnrKLS+gLfo73I9AJrS6q5/vaFIUCfY= Modules/module.modulemap @@ -462,7 +462,7 @@ hash2 - OdsCYwFlDcza390B28gb81xddKTIJU2EoZiZnWkwjX0= + 49tPddSUexka+cOYLJvZbpUioKLznrKavHR3g27UIKk= Resources/de.lproj/Cities.json @@ -559,7 +559,7 @@ hash2 - IlEn3hbZGuCjMSH9gZO+PFLqJ+5ww2JgW16wGmJsbrE= + 6yTfHuscCVEEzTuLAe3kM06BC3W+YpJ+18a+KuNIgpM= optional diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Headers/SoulverCore-Swift.h b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Headers/SoulverCore-Swift.h index 53948c25c..d9c49f77d 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Headers/SoulverCore-Swift.h +++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Headers/SoulverCore-Swift.h @@ -1,6 +1,6 @@ #if 0 #elif defined(__arm64__) && __arm64__ -// Generated by Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// Generated by Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) #ifndef SOULVERCORE_SWIFT_H #define SOULVERCORE_SWIFT_H #pragma clang diagnostic push @@ -208,6 +208,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # pragma pop_macro("any") #endif +@class NSNumber; /// Subclass of Operation that adds support of asynchronous operations. ///
          @@ -241,7 +242,7 @@ SWIFT_CLASS("_TtC11SoulverCore21AsynchronousOperation") #endif #elif defined(__x86_64__) && __x86_64__ -// Generated by Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// Generated by Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) #ifndef SOULVERCORE_SWIFT_H #define SOULVERCORE_SWIFT_H #pragma clang diagnostic push @@ -449,6 +450,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # pragma pop_macro("any") #endif +@class NSNumber; /// Subclass of Operation that adds support of asynchronous operations. ///
            diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Info.plist b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Info.plist index 1764240cf..c45d84bf8 100644 Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Info.plist and b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Info.plist differ diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftdoc index a27c00baa..620cccc61 100644 Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftdoc differ diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftinterface index c7d44e3c2..2d7087704 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftinterface +++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target arm64-apple-ios13.6-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc index a27c00baa..620cccc61 100644 Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc differ diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface index c7d44e3c2..2d7087704 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface +++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target arm64-apple-ios13.6-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc index 1ed8cec74..6a9fd1225 100644 Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc differ diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface index 449868ec4..8904923dc 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target x86_64-apple-ios13.6-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc index 1ed8cec74..6a9fd1225 100644 Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc differ diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface index 449868ec4..8904923dc 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface +++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target x86_64-apple-ios13.6-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/SoulverCore b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/SoulverCore index 442881a3d..90456a3d6 100755 Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/SoulverCore and b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/SoulverCore differ diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources index 321746b13..a8b99eb67 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources +++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources @@ -6,7 +6,7 @@ Headers/SoulverCore-Swift.h - E9qI597vzpQgrxjQ5Qg0igoLDow= + tMvIoINDpgdT/fEEIcsH52sRBwk= Headers/SoulverCore.h @@ -14,55 +14,55 @@ Info.plist - dil+YSE4oBkeWfTcs2lhwUUGMxk= + 75x6CwwZP6UuZiUfVtYjHDycWy0= Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftdoc - 2jH5qvOqnBHzSoEOao6h2DUM5HE= + rxCS4nZjwN/mV88IJqUnGws/Ai0= Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftinterface - f+eXTnG6NkzDv09TcoxkaNqa+bo= + 5aEsLkmlmvGDjdv7X/RcMyScd5Q= Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftmodule - 3JVVja1Ru78jf6A3OnekkRCk3tU= + NgH1XRtV0+NAXXRxU9k4JFjvnro= Modules/SoulverCore.swiftmodule/arm64.swiftdoc - 2jH5qvOqnBHzSoEOao6h2DUM5HE= + rxCS4nZjwN/mV88IJqUnGws/Ai0= Modules/SoulverCore.swiftmodule/arm64.swiftinterface - f+eXTnG6NkzDv09TcoxkaNqa+bo= + 5aEsLkmlmvGDjdv7X/RcMyScd5Q= Modules/SoulverCore.swiftmodule/arm64.swiftmodule - 3JVVja1Ru78jf6A3OnekkRCk3tU= + NgH1XRtV0+NAXXRxU9k4JFjvnro= Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc - H5RRf+LpbEhYBUBBibb1Z6Lq9C8= + /5iwU/Awoxm9CATgI6wJUQwm6Cc= Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface - JNPrzvNm2+VcL5FPT21y+XVFNs8= + Jl8obV4MBZgYykUFCflN1+Rio4o= Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftmodule - tataVih47Hv665eLFqnlggsdBmI= + L+7SsYBYjKl49cVxAHbnMaHX2T8= Modules/SoulverCore.swiftmodule/x86_64.swiftdoc - H5RRf+LpbEhYBUBBibb1Z6Lq9C8= + /5iwU/Awoxm9CATgI6wJUQwm6Cc= Modules/SoulverCore.swiftmodule/x86_64.swiftinterface - JNPrzvNm2+VcL5FPT21y+XVFNs8= + Jl8obV4MBZgYykUFCflN1+Rio4o= Modules/SoulverCore.swiftmodule/x86_64.swiftmodule - tataVih47Hv665eLFqnlggsdBmI= + L+7SsYBYjKl49cVxAHbnMaHX2T8= Modules/module.modulemap @@ -162,7 +162,7 @@ hash - yOmTSUY2tP5UbixhFVe/eQIaRlg= + T1fY6yGBPqbnKiBmMxhL1u//wYY= optional @@ -417,7 +417,7 @@ hash2 - 1Kv2EG7R8UWfMYYEbLha7mFHsRNB+bqWOoi4fktLoBw= + id+H2KZ1dfx0fQa0jKNmAsF+2z8vZTwMO3H2ot9CJfA= Headers/SoulverCore.h @@ -431,84 +431,84 @@ hash2 - T0L92g8UtsH+vSmFpKiwHwn5GdJdsi8gZ/XtnnVEFwE= + yymjsSd5C9tbODqA9UrL9QKWdsUHbnm4w9m6VJkn2rQ= Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftinterface hash2 - 9WmcuzDJqxJUTGLESqkpqXlGm+bqt6a1KKvKRnfyK54= + sslOdxcs2uRLdzbOgkWAsM8jf8S/L/l1m7nYM0hp9h0= Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftmodule hash2 - bo/M6bghWnTKFHklRu3hFiVkyBWFOzM4sp2L++TJnsM= + K5Ug6JW2igV3BBINyVkLDZ89JrfbNY2gea5ViOUMImY= Modules/SoulverCore.swiftmodule/arm64.swiftdoc hash2 - T0L92g8UtsH+vSmFpKiwHwn5GdJdsi8gZ/XtnnVEFwE= + yymjsSd5C9tbODqA9UrL9QKWdsUHbnm4w9m6VJkn2rQ= Modules/SoulverCore.swiftmodule/arm64.swiftinterface hash2 - 9WmcuzDJqxJUTGLESqkpqXlGm+bqt6a1KKvKRnfyK54= + sslOdxcs2uRLdzbOgkWAsM8jf8S/L/l1m7nYM0hp9h0= Modules/SoulverCore.swiftmodule/arm64.swiftmodule hash2 - bo/M6bghWnTKFHklRu3hFiVkyBWFOzM4sp2L++TJnsM= + K5Ug6JW2igV3BBINyVkLDZ89JrfbNY2gea5ViOUMImY= Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc hash2 - Ydmqp2EscusuYq1aTtAUr2rzlfVN6DDbHSEKDhGs2X0= + cfe59guPFhK+LxBO+TKSWF1k9sAYm0ETAjWz2amtw28= Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface hash2 - 8nZzYsTArfo3XzNw46lTLpiyvKTj49eGuLW6Q1rAcIw= + Kwl61mJ/Cb6Fohe0xMKVrnCDfJFPfy8DqHvE76qiIFY= Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftmodule hash2 - y9NPvunwHM8chPWgjnDxjW2NksvCFfg9CjQAiXxXKB8= + qQDQc2HIFrYgAEFf+J3twQ65EFgMyUf7PENv+dShT10= Modules/SoulverCore.swiftmodule/x86_64.swiftdoc hash2 - Ydmqp2EscusuYq1aTtAUr2rzlfVN6DDbHSEKDhGs2X0= + cfe59guPFhK+LxBO+TKSWF1k9sAYm0ETAjWz2amtw28= Modules/SoulverCore.swiftmodule/x86_64.swiftinterface hash2 - 8nZzYsTArfo3XzNw46lTLpiyvKTj49eGuLW6Q1rAcIw= + Kwl61mJ/Cb6Fohe0xMKVrnCDfJFPfy8DqHvE76qiIFY= Modules/SoulverCore.swiftmodule/x86_64.swiftmodule hash2 - y9NPvunwHM8chPWgjnDxjW2NksvCFfg9CjQAiXxXKB8= + qQDQc2HIFrYgAEFf+J3twQ65EFgMyUf7PENv+dShT10= Modules/module.modulemap @@ -612,7 +612,7 @@ hash2 - IlEn3hbZGuCjMSH9gZO+PFLqJ+5ww2JgW16wGmJsbrE= + 6yTfHuscCVEEzTuLAe3kM06BC3W+YpJ+18a+KuNIgpM= optional diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/CurrencyDescriptions.json b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/CurrencyDescriptions.json index a2af21f32..d64a82ccc 100644 --- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/CurrencyDescriptions.json +++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/CurrencyDescriptions.json @@ -711,8 +711,8 @@ }, "RON": { "aliases": [ - "romanian lei", - "romanian leis" + "romanian leu", + "romanian lei" ], "symbol": "RON" }, @@ -998,7 +998,7 @@ "MDL": { "aliases": [ "moldovan leu", - "moldovan leus" + "moldovan lei" ], "symbol": "MDL" }, @@ -1042,7 +1042,9 @@ "pence": { "aliases": [ "penny", - "pennies" + "pennies", + "british pence", + "GBX" ], "symbol": "pence" }, diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h index 53948c25c..d9c49f77d 100644 --- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h +++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h @@ -1,6 +1,6 @@ #if 0 #elif defined(__arm64__) && __arm64__ -// Generated by Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// Generated by Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) #ifndef SOULVERCORE_SWIFT_H #define SOULVERCORE_SWIFT_H #pragma clang diagnostic push @@ -208,6 +208,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # pragma pop_macro("any") #endif +@class NSNumber; /// Subclass of Operation that adds support of asynchronous operations. ///
              @@ -241,7 +242,7 @@ SWIFT_CLASS("_TtC11SoulverCore21AsynchronousOperation") #endif #elif defined(__x86_64__) && __x86_64__ -// Generated by Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// Generated by Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) #ifndef SOULVERCORE_SWIFT_H #define SOULVERCORE_SWIFT_H #pragma clang diagnostic push @@ -449,6 +450,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # pragma pop_macro("any") #endif +@class NSNumber; /// Subclass of Operation that adds support of asynchronous operations. ///
                diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftdoc b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftdoc index 5e904b8b5..e4eec2c7a 100644 Binary files a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftdoc and b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftdoc differ diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftinterface b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftinterface index 5b83a8bcd..b099bf64d 100644 --- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftinterface +++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target arm64-apple-macos10.14.4 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc index 5e904b8b5..e4eec2c7a 100644 Binary files a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc and b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc differ diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface index 5b83a8bcd..b099bf64d 100644 --- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface +++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target arm64-apple-macos10.14.4 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc index a96ab8829..045930be3 100644 Binary files a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc and b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc differ diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface index 705f5ec2a..4c8935552 100644 --- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface +++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target x86_64-apple-macos10.14.4 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc index a96ab8829..045930be3 100644 Binary files a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc and b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc differ diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface index 705f5ec2a..4c8935552 100644 --- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface +++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface @@ -1,28 +1,28 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-compiler-version: Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) // swift-module-flags: -target x86_64-apple-macos10.14.4 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore import Foundation @_exported import SoulverCore import Swift -public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { +final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable { public init() convenience public init(variableList: SoulverCore.VariableList) convenience public init(variables: [SoulverCore.Variable]) - public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) - public func allVariables() -> [SoulverCore.Variable] - public func variablesExludingLineReferences() -> [SoulverCore.Variable] - public func singleWordVariables() -> [SoulverCore.Variable] - public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] - public func setVariable(_ variable: SoulverCore.Variable) - public func setVariables(_ variables: [SoulverCore.Variable]) - public func clearVariable(withName name: Swift.String) - public var debugDescription: Swift.String { + final public func provideDefinitionsForValuesWith(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult) + final public func allVariables() -> [SoulverCore.Variable] + final public func variablesExludingLineReferences() -> [SoulverCore.Variable] + final public func singleWordVariables() -> [SoulverCore.Variable] + final public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable] + final public func setVariable(_ variable: SoulverCore.Variable) + final public func setVariables(_ variables: [SoulverCore.Variable]) + final public func clearVariable(withName name: Swift.String) + final public var debugDescription: Swift.String { get } public static func == (lhs: SoulverCore.VariableList, rhs: SoulverCore.VariableList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) @objc deinit - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } @@ -38,10 +38,10 @@ public enum DatespanType { case season case quarter public static func == (a: SoulverCore.DatespanType, b: SoulverCore.DatespanType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum DatespanSubtype { case summer @@ -53,10 +53,10 @@ public enum DatespanSubtype { case thirdQuarter case fourthQuarter public static func == (a: SoulverCore.DatespanSubtype, b: SoulverCore.DatespanSubtype) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datespan : Swift.Equatable { public static func == (a: SoulverCore.Datespan, b: SoulverCore.Datespan) -> Swift.Bool @@ -88,13 +88,13 @@ public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Sw public var description: Swift.String { get } - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public protocol Evaluator { func evaluate(_ tokenList: SoulverCore.TokenList) -> SoulverCore.EvaluationResult @@ -143,15 +143,15 @@ public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable { public var associatedOtherUnits: [SoulverCore.UnitIdentifier] { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitType] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitType] { get } + public var rawValue: Swift.String { + get + } } public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable { case metersPerSecondSquared @@ -601,15 +601,15 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte public var motherUnitIdentifier: SoulverCore.UnitIdentifier { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitIdentifier] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitIdentifier] { get } + public var rawValue: Swift.String { + get + } } extension Int { public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult @@ -620,34 +620,12 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { public var timeZone: Foundation.TimeZone { get } - public var customVariables: [SoulverCore.Variable] { - get - set - } - public var customUnits: [SoulverCore.CustomUnit] { - get - set - } - public var customSymbols: [SoulverCore.UnitSymbolReplacement] { - get - set - } - public var customPlaces: [SoulverCore.Place] { - get - set - } - public var customFunctions: [SoulverCore.CustomFunction] { - get - set - } - public var dynamicVariables: [SoulverCore.DynamicVariable] { - get - set - } - public var currencyUnits: [SoulverCore.UnitDescription] { - get - set - } + public var customUnits: [SoulverCore.CustomUnit] + public var currencyUnits: [SoulverCore.UnitDescription] + public var customSymbols: [SoulverCore.UnitSymbolReplacement] + public var customPlaces: [SoulverCore.Place] + public var customFunctions: [SoulverCore.CustomFunction] + public var dynamicVariables: [SoulverCore.DynamicVariable] public var holidays: [SoulverCore.Holiday] public var unitSystem: SoulverCore.UnitMeasurementSystem public var featureFlags: SoulverCore.EngineFeatureFlags @@ -663,7 +641,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable { } } extension EngineCustomization { - public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization + public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization public func isOperator(text: Swift.String) -> Swift.Bool public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String? } @@ -723,80 +701,80 @@ public struct Place : Swift.Hashable, Swift.Equatable { case timeZoneAbbreviation case unspecified public static func == (a: SoulverCore.Place.PlaceType, b: SoulverCore.Place.PlaceType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(name: Swift.String, aliases: [Swift.String]?, timeZone: Foundation.TimeZone, type: SoulverCore.Place.PlaceType = .unspecified) public let name: Swift.String public let aliases: [Swift.String]? public let timeZone: Foundation.TimeZone public let type: SoulverCore.Place.PlaceType + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Place, b: SoulverCore.Place) -> Swift.Bool } @_hasMissingDesignatedInitializers public class LineCollectionCompletions { public class func completionsFor(textFragment: Swift.String, charIndex: Swift.Int, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String] @objc deinit } -public class Line : Swift.Codable { - public var expression: Swift.String - public var behaviour: SoulverCore.LineCalculationBehaviour - public var skipStatistics: Swift.Bool - public var lineReference: SoulverCore.LineReference? - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var tags: [Swift.String] - public var result: SoulverCore.CalculationResult? - public var parsedExpression: SoulverCore.TokenList? - public var apparentLineType: SoulverCore.ApparentLineType? - public var lineIndex: SoulverCore.LineIndex? - public var explicitDependencies: Foundation.IndexSet? - public var variableEnvironment: SoulverCore.VariableList? - public var rawResult: Swift.String { +final public class Line : Swift.Codable { + final public var expression: Swift.String + final public var behaviour: SoulverCore.LineCalculationBehaviour + final public var skipStatistics: Swift.Bool + final public var lineReference: SoulverCore.LineReference? + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var tags: [Swift.String] + final public var result: SoulverCore.CalculationResult? + final public var parsedExpression: SoulverCore.TokenList? + final public var apparentLineType: SoulverCore.ApparentLineType? + final public var lineIndex: SoulverCore.LineIndex? + final public var explicitDependencies: Foundation.IndexSet? + final public var variableEnvironment: SoulverCore.VariableList? + final public var rawResult: Swift.String { get } - public var formattedResult: Swift.String { + final public var formattedResult: Swift.String { get } convenience public init(_ expression: SoulverCore.RawExpression) public init() required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws + final public func encode(to encoder: Swift.Encoder) throws @objc deinit } extension Line { - public var isSubtotal: Swift.Bool { + final public var isSubtotal: Swift.Bool { get } - public var isHeading: Swift.Bool { + final public var isHeading: Swift.Bool { get } } extension Line { - public var declaredVariable: SoulverCore.Variable? { + final public var declaredVariable: SoulverCore.Variable? { get } - public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] - public var indexesReferencedInExpression: Foundation.IndexSet { + final public func referencesInExpressionTo(variable: SoulverCore.Variable) -> [SoulverCore.Token] + final public var indexesReferencedInExpression: Foundation.IndexSet { get } } extension Line : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) + final public func hash(into hasher: inout Swift.Hasher) public static var EmptyLine: SoulverCore.Line { get } - public var hashValue: Swift.Int { + final public var hashValue: Swift.Int { get } } extension Line : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } @@ -805,16 +783,16 @@ public enum ApparentLineType { case comment case variableDeclaration public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum LineCalculationBehaviour : Swift.String, Swift.Codable { case evaluatesExpression case sumsLinesAbove - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -828,8 +806,8 @@ public enum CurrencySet : Swift.String { case popular case realWorld case realWorldPlusCrypto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -837,16 +815,16 @@ public enum CurrencySet : Swift.String { public struct CurrencySourceCredentials { public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?) } -@_hasMissingDesignatedInitializers public class CurrencyList { +@_hasMissingDesignatedInitializers final public class CurrencyList { public static let shared: SoulverCore.CurrencyList - public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials - public var defaultCurrencySet: SoulverCore.CurrencySet { + final public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials + final public var defaultCurrencySet: SoulverCore.CurrencySet { get set } - public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) - public func saveCurrenciesTo(url: Foundation.URL) - public func loadCurrenciesFrom(url: Foundation.URL) throws + final public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil) + final public func saveCurrenciesTo(url: Foundation.URL) + final public func loadCurrenciesFrom(url: Foundation.URL) throws @objc deinit } public typealias VariableName = Swift.String @@ -856,8 +834,8 @@ public enum VariableType : Swift.String, Swift.RawRepresentable, Swift.Codable { case local case global case lineReference - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -870,8 +848,8 @@ public struct Variable : Swift.Codable { public var definition: SoulverCore.EvaluationResult? public var type: SoulverCore.VariableType public var isPhrase: Swift.Bool? - public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } extension Variable : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool @@ -906,7 +884,7 @@ public struct LineCollectionArchive : Swift.Codable { } @_hasMissingDesignatedInitializers public class LineCollectionArchiver { public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? - public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection + public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?, baseVariables: SoulverCore.VariableList?, customEvaluator: SoulverCore.Evaluator? = nil) throws -> SoulverCore.LineCollection public class func archiveFor(lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollectionArchive public class func lineCollectionFrom(archive: SoulverCore.LineCollectionArchive, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale) -> SoulverCore.LineCollection @objc deinit @@ -922,7 +900,10 @@ public protocol Routine : AnyObject { extension Routine { public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void)) } -@_hasMissingDesignatedInitializers public class StaticResouces { +@_hasMissingDesignatedInitializers final public class StaticResouces { + public static var localizedStandardPlaces: [SoulverCore.Place] { + get + } public static var localizedCountries: [SoulverCore.Country] { get } @@ -938,10 +919,10 @@ public struct DynamicVariable : Swift.Hashable, Swift.Equatable { case distantValue case subsheet public static func == (a: SoulverCore.DynamicVariable.DynamicVariableType, b: SoulverCore.DynamicVariable.DynamicVariableType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public init(symbol: Swift.String, type: SoulverCore.DynamicVariable.DynamicVariableType = .undefined, handler: @escaping SoulverCore.DynamicVariableDefinitonBlock) public let type: SoulverCore.DynamicVariable.DynamicVariableType @@ -990,10 +971,10 @@ public enum DatestampType { case quarter case unspecified public static func == (a: SoulverCore.DatestampType, b: SoulverCore.DatestampType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct Datestamp : Swift.Equatable { public init(date: Foundation.Date, type: SoulverCore.DatestampType, timezone: Foundation.TimeZone, hasExplicitTimeComponent: Swift.Bool, hasExplicitTimeZone: Swift.Bool, isAmbiguous: Swift.Bool = false) @@ -1015,26 +996,30 @@ public struct ExportOptions { @_hasMissingDesignatedInitializers public class LineCollectionExporter { public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data? public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? - public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data? public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String @objc deinit } -public class Calculator { - public var formattingPreferences: SoulverCore.FormattingPreferences? - public var customization: SoulverCore.EngineCustomization { +final public class Calculator { + final public var formattingPreferences: SoulverCore.FormattingPreferences? + final public var customization: SoulverCore.EngineCustomization { get } - public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? + final public var customFunctionEvaluator: SoulverCore.CustomFunctionEvaluator? public init(customization: SoulverCore.EngineCustomization) - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult - public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult + final public func calculate(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil, completionHandler: @escaping ((SoulverCore.CalculationResult) -> Swift.Void)) @objc deinit } public protocol CustomFunctionEvaluator { func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult } extension Calculator { - public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? + final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)? +} +extension Calculator { + public static var basic: SoulverCore.Calculator { + get + } } extension IndexSet { public func isJust(_ integer: Swift.Int) -> Swift.Bool @@ -1053,22 +1038,23 @@ extension IndexSet { } public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult public typealias PrototypePlaceholder = Swift.String -public class CustomType : Swift.Hashable, Swift.Equatable { +public struct CustomType : Swift.Hashable, Swift.Equatable { public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?) - final public let prototypePlaceholder: SoulverCore.PrototypePlaceholder - final public let symbols: [Swift.String] - final public let associatedObject: Any? + public let prototypePlaceholder: SoulverCore.PrototypePlaceholder + public let symbols: [Swift.String] + public let associatedObject: Any? public static func == (lhs: SoulverCore.CustomType, rhs: SoulverCore.CustomType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) - @objc deinit public var hashValue: Swift.Int { get } } public struct CustomFunction : Swift.Hashable, Swift.Equatable { - public init(prototypeExpression: Swift.String, handler: @escaping SoulverCore.CustomFunctionHandler) + public init(prototypeExpression: SoulverCore.PrototypeExpression, handler: @escaping SoulverCore.CustomFunctionHandler) public var backgroundHandler: SoulverCore.CustomFunctionHandler? public var customTypes: [SoulverCore.CustomType]? + public var aliases: [SoulverCore.PrototypeExpression]? + public var prerequisiteTypes: SoulverCore.TokenTypeSet? public static func == (lhs: SoulverCore.CustomFunction, rhs: SoulverCore.CustomFunction) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { @@ -1077,12 +1063,12 @@ public struct CustomFunction : Swift.Hashable, Swift.Equatable { } public struct Airport : Swift.Codable, Swift.Hashable, Swift.Equatable { public static func == (a: SoulverCore.Airport, b: SoulverCore.Airport) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable { public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool @@ -1105,73 +1091,73 @@ extension Token : Swift.CustomDebugStringConvertible { } extension TokenList : Swift.Equatable, Swift.Hashable { public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { + final public func hash(into hasher: inout Swift.Hasher) + final public var hashValue: Swift.Int { get } } -@_hasMissingDesignatedInitializers public class TokenList { - public var tokens: [SoulverCore.Token] - public var count: Swift.Int { +@_hasMissingDesignatedInitializers final public class TokenList { + final public var tokens: [SoulverCore.Token] + final public var count: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var flattenedTokens: [SoulverCore.Token] { + final public var flattenedTokens: [SoulverCore.Token] { get } - public subscript(index: Swift.Int) -> SoulverCore.Token { + final public subscript(index: Swift.Int) -> SoulverCore.Token { get set(newValue) } - public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] - public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool - public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? - public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token] + final public func allTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func onlyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func anyTypesHaveBeenPresentIn(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func tokenBefore(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBe type: SoulverCore.TokenType, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenAfter(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? + final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token? @objc deinit } extension TokenList { - public var rebuiltExpression: SoulverCore.RawExpression { + final public var rebuiltExpression: SoulverCore.RawExpression { get } } extension TokenList : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { + final public var debugDescription: Swift.String { get } } extension TokenList { - public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? - public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? - public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? - public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? + final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token? + final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex? + final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token? + final public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token? } public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool extension TokenList { - public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) - public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) - public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) - public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void) + final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void) + final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) + final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void) } extension TokenList { - public func containsToken(token: SoulverCore.Token) -> Swift.Bool - public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool + final public func containsToken(token: SoulverCore.Token) -> Swift.Bool + final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool } extension TokenList { - public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool - public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool + final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool + final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool } extension TokenList { public static var EmptyList: SoulverCore.TokenList @@ -1193,7 +1179,7 @@ extension String { public var isSingleWhitespace: Swift.Bool { get } - public var isLowerecased: Swift.Bool { + public var isLowercased: Swift.Bool { get } public var isUppercased: Swift.Bool { @@ -1335,14 +1321,14 @@ public enum TokenType : Swift.CaseIterable { case dateComponents case literal public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public typealias AllCases = [SoulverCore.TokenType] public static var allCases: [SoulverCore.TokenType] { get } + public var hashValue: Swift.Int { + get + } } public enum TokenSubType { case additionOperator @@ -1441,10 +1427,10 @@ public enum TokenSubType { case unknownError case notSpecified public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } indirect public enum EvaluationResult { case rawString(Swift.String) @@ -1467,7 +1453,7 @@ indirect public enum EvaluationResult { case unit(SoulverCore.SCUnit) case substance(SoulverCore.Substance) case datespan(SoulverCore.Datespan) - case timezone(Foundation.TimeZone) + case place(SoulverCore.Place) case customType(SoulverCore.CustomType) case pending case failed @@ -1487,6 +1473,9 @@ indirect public enum EvaluationResult { public var datestampValue: SoulverCore.Datestamp? { get } + public var placeValue: SoulverCore.Place? { + get + } public var unitValue: SoulverCore.SCUnit? { get } @@ -1543,6 +1532,9 @@ extension Token { public var timespanValue: SoulverCore.Timespan? { get } + public var placeValue: SoulverCore.Place? { + get + } public var timeZoneValue: Foundation.TimeZone? { get } @@ -1568,130 +1560,131 @@ extension Token { get } } -public class LineCollection { +final public class LineCollection { public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void - public var lineSheet: SoulverCore.LineSheet { + final public var lineSheet: SoulverCore.LineSheet { get set } - public var customization: SoulverCore.EngineCustomization { + final public var customization: SoulverCore.EngineCustomization { get } - public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { + final public var variableList: SoulverCore.VariableList? { get set } - public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + final public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? { get set } - public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard) - public var deepCopy: SoulverCore.LineCollection { + final public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? { + get + set + } + public init(customization: SoulverCore.EngineCustomization) + final public var deepCopy: SoulverCore.LineCollection { get } - public func beginChanges() - public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) + final public func beginChanges() + final public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?) @discardableResult - public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line - public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) - public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) - public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) - public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) - public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) - public func removeLineAt(lineIndex: SoulverCore.LineIndex) - public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) - public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + final public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line + final public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression]) + final public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String) + final public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String) + final public func insert(line: SoulverCore.Line, at lineIndex: SoulverCore.LineIndex) + final public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex) + final public func removeLineAt(lineIndex: SoulverCore.LineIndex) + final public func replaceLineAt(lineIndex: SoulverCore.LineIndex, with newLine: SoulverCore.Line) + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { get set(newValue) } - public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { + final public subscript(safe index: SoulverCore.LineIndex) -> SoulverCore.Line? { get } - public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) - public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) - public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) - public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) - public func evaluateAll() - public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) + final public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences) + final public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex) + final public func setTags(tags: [Swift.String], forLineAt index: SoulverCore.LineIndex) + final public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex) + final public func evaluateAll() + final public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil) @discardableResult - public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference - public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) + final public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference + final public func clearReferenceForLineAt(lineIndex: SoulverCore.LineIndex) @discardableResult - public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken - public func remove(observer: SoulverCore.LineCollectionObserverToken) - public var quickSum: SoulverCore.CalculationResult? { + final public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken + final public func remove(observer: SoulverCore.LineCollectionObserverToken) + final public var quickSum: SoulverCore.CalculationResult? { get } - public var quickAverage: SoulverCore.CalculationResult? { + final public var quickAverage: SoulverCore.CalculationResult? { get } - public var quickCount: SoulverCore.CalculationResult? { + final public var quickCount: SoulverCore.CalculationResult? { get } - public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? - public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? + final public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult? @discardableResult - public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool - public func set(customization: SoulverCore.EngineCustomization) - public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket + final public func convertToLocale(_ toLocale: Foundation.Locale) -> Swift.Bool + final public func set(customization: SoulverCore.EngineCustomization) + final public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket @discardableResult - public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? - public func clearStates() - public var lineCount: Swift.Int { + final public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket) -> SoulverCore.LineSheetDelta? + final public func clearStates() + final public var lineCount: Swift.Int { get } - public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public var allIndexes: Foundation.IndexSet { + final public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public var allIndexes: Foundation.IndexSet { get } - public var lastIndex: Swift.Int { + final public var lastIndex: Swift.Int { get } - public var firstIndex: Swift.Int { + final public var firstIndex: Swift.Int { get } - public var isEmpty: Swift.Bool { + final public var isEmpty: Swift.Bool { get } - public var lines: [SoulverCore.Line] { + final public var lines: [SoulverCore.Line] { get } - public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] - public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList - public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? - public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool - public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? - public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? - public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? + final public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line] + final public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList + final public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token? + final public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool + final public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line? + final public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line? + final public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String? @discardableResult - public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet - public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String - public var customEvaluator: SoulverCore.Evaluator? { + final public func replaceOccurancesInExpressions(replacements: [Swift.String : Swift.String]) -> Foundation.IndexSet + final public func unformattedResultFor(lineIndex: SoulverCore.LineIndex) -> Swift.String + final public var customEvaluator: SoulverCore.Evaluator? { get set } - public func addSubsheet() -> SoulverCore.LineReference - public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) - public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? - public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference + final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference + final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference) + final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet? + final public func makeReferenceForDynamicSymbol() -> SoulverCore.LineReference @objc deinit } public typealias LineCollectionStateTicket = Swift.String extension LineCollection : Swift.CustomDebugStringConvertible { public typealias MultiLineText = Swift.String - public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection + final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil) - public var debugDescription: Swift.String { + public static var basic: SoulverCore.LineCollection { get } -} -extension LineCollection { - public var engineCustomization: SoulverCore.EngineCustomization { + final public var debugDescription: Swift.String { get } - public func finishLineCollectionSetup(lineCollection: SoulverCore.LineCollection) } @_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable { public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool @@ -1702,11 +1695,11 @@ extension LineCollection { } } extension LineCollection { - public var indexesOfTimeDependentLines: Foundation.IndexSet { + final public var indexesOfTimeDependentLines: Foundation.IndexSet { get } - public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet - public var indexesOfPendingLines: Foundation.IndexSet { + final public func indexesOfLinesDependentOn(variables: [SoulverCore.Variable]) -> Foundation.IndexSet + final public var indexesOfPendingLines: Foundation.IndexSet { get } } @@ -1716,12 +1709,12 @@ extension LineCollection { @objc deinit } extension LineCollection : Swift.Sequence { - public func makeIterator() -> SoulverCore.LineCollectionIterator + final public func makeIterator() -> SoulverCore.LineCollectionIterator public typealias Element = SoulverCore.LineCollectionIterator.Element public typealias Iterator = SoulverCore.LineCollectionIterator } extension LineCollection { - public var text: SoulverCore.LineCollection.MultiLineText { + final public var text: SoulverCore.LineCollection.MultiLineText { get } } @@ -1759,25 +1752,25 @@ public enum LineStyle : Swift.Int { case heading case label case comment - public typealias RawValue = Swift.Int public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int public var rawValue: Swift.Int { get } } -public class LineStyler { +final public class LineStyler { public static let MARKDOWN_HEADING_CHARACTER: Swift.String public static let HEADING_INDICATOR: Swift.String public static let COMMENT_INDICATOR: Swift.String public static let LABEL_INDICATOR: Swift.String public init() - public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle - public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String - public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? - public var defaultLabel: Swift.String { + final public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle + final public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String + final public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public func headingRangeIn(_ expression: Swift.String) -> Foundation.NSRange? + final public var defaultLabel: Swift.String { get } @objc deinit @@ -1790,15 +1783,15 @@ public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable public var description: Swift.String { get } - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) - public var rawValue: Swift.String { - get - } public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition] + public typealias RawValue = Swift.String public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] { get } + public var rawValue: Swift.String { + get + } } public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable { public let originalSymbol: Swift.String @@ -1806,13 +1799,13 @@ public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Cod public let position: SoulverCore.UnitSymbolReplacementPosition public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before) public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement] - public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws + public init(from decoder: Swift.Decoder) throws } public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let name: Swift.String @@ -1821,12 +1814,12 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable { public let legacyDefinition: Swift.String? public init(name: Swift.String, definition: Foundation.Decimal, equivalentUnit: SoulverCore.UnitIdentifier) public init(from decoder: Swift.Decoder) throws - public var hashValue: Swift.Int { - get - } public func hash(into hasher: inout Swift.Hasher) public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool public func encode(to encoder: Swift.Encoder) throws + public var hashValue: Swift.Int { + get + } } extension Array where Element : Swift.Equatable { public func doesNotContain(_ element: Element) -> Swift.Bool @@ -1846,6 +1839,7 @@ extension Array { public func isValid(index: Swift.Int) -> Swift.Bool public mutating func trim(where predicate: (Element) throws -> Swift.Bool) public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index) + public mutating func extract(_ shouldExtract: (Element) -> Swift.Bool) -> [Element] } infix operator ~ : AdditionPrecedence public struct WordFunctionArgument { @@ -1861,8 +1855,8 @@ public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift. case customaryUS case imperial case metric - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1907,8 +1901,8 @@ public enum SIThreshold : Swift.String { case atto case zetto case yocto - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -1930,19 +1924,19 @@ public struct LineSheetDelta { case plainTextReference case markdownLinkStyle public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum ResultFormatting { case formatted case raw public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct LineCollectionEnumerationOptions { public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy @@ -1962,6 +1956,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public var units: Swift.Bool public var wordFunctions: Swift.Bool public var variableDeclarations: Swift.Bool + public var unitDeclarations: Swift.Bool public var hexAndBinary: Swift.Bool public var cookingSubstances: Swift.Bool public var bracketComments: Swift.Bool @@ -1972,11 +1967,11 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool) public init(from decoder: Swift.Decoder) throws public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public func encode(to encoder: Swift.Encoder) throws } public struct Fraction : Swift.Equatable { public let decimalValue: Foundation.Decimal @@ -2005,6 +2000,25 @@ extension SCUnit { get } } +public class LineCollectionReducer { + public var inflectCustomUnits: Swift.Bool + public init(lineCollection: SoulverCore.LineCollection) + public var returnValue: SoulverCore.CalculationResult { + get + } + public var locallyDefinedVariables: [SoulverCore.Variable] { + get + } + public struct CustomDefinitions { + public let customVariables: [SoulverCore.Variable] + public let customUnits: [SoulverCore.CustomUnit] + public let customPlaces: [SoulverCore.Place] + } + public var customDefinitions: SoulverCore.LineCollectionReducer.CustomDefinitions { + get + } + @objc deinit +} public typealias PrivateUnicodeSymbol = Swift.String @_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator { public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool @@ -2023,12 +2037,12 @@ public struct Country : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.Country, b: SoulverCore.Country) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { public let identifier: Swift.String @@ -2038,12 +2052,12 @@ public struct City : Swift.Codable, Swift.Equatable, Swift.Hashable { get } public static func == (a: SoulverCore.City, b: SoulverCore.City) -> Swift.Bool - public init(from decoder: Swift.Decoder) throws + public func hash(into hasher: inout Swift.Hasher) public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) + public init(from decoder: Swift.Decoder) throws } @_hasMissingDesignatedInitializers public class LocaleProvider { public class func localeWith(identifier: Swift.String) -> Foundation.Locale @@ -2059,10 +2073,10 @@ public enum EvaluationError : Swift.Error { case BadDivision case Other public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public enum TokenListForm : Swift.Equatable { case singleNumber(value: Foundation.Decimal) @@ -2082,7 +2096,7 @@ public struct TokenListMetadata { public let form: SoulverCore.TokenListForm } extension TokenList { - public var metadata: SoulverCore.TokenListMetadata { + final public var metadata: SoulverCore.TokenListMetadata { get } } @@ -2092,27 +2106,26 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable { case on case off public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public var notationStyle: SoulverCore.NotationPreferences.NotationStyle public var upperNotationThreshold: SoulverCore.SIThreshold public var lowerNotationThreshold: SoulverCore.SIThreshold public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold) public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hashable { public static var maximumDp: Swift.Int public var dp: Swift.Int public var thousandsSeparatorDisabled: Swift.Bool public var currencyFormattingDisabled: Swift.Bool - public var implicitUnitsDisabled: Swift.Bool public var notationPreferences: SoulverCore.NotationPreferences public var referencesTakeFormattedValue: Swift.Bool public var fractionizeWherePossible: Swift.Bool @@ -2120,20 +2133,23 @@ public struct FormattingPreferences : Swift.Codable, Swift.Equatable, Swift.Hash public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public struct UnitDescription : Swift.Hashable, Swift.Codable { public init(unit: SoulverCore.SCUnit, symbol: Swift.String, aliases: [Swift.String]) + public let symbol: Swift.String + public let aliases: [Swift.String] + public let associatedUnit: SoulverCore.SCUnit public init(from decoder: Swift.Decoder) throws public func encode(to encoder: Swift.Encoder) throws + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool } public typealias PrototypeExpression = Swift.String public enum PrototypeExpressionMatchType { @@ -2141,10 +2157,10 @@ public enum PrototypeExpressionMatchType { case matchTokenType case matchUnitType public static func == (a: SoulverCore.PrototypeExpressionMatchType, b: SoulverCore.PrototypeExpressionMatchType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) } public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType @_hasMissingDesignatedInitializers public class PrototypeExpressionGenerator { @@ -2155,13 +2171,22 @@ extension String { public func foundationLocalized() -> Swift.String public func localized(bundle: Foundation.Bundle = .main) -> Swift.String } -public struct Holiday : Swift.Hashable, Swift.Equatable { +public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable { public init(day: Swift.Int, month: Swift.Int, year: Swift.Int) + public let day: Swift.Int + public let month: Swift.Int + public let year: Swift.Int + public var description: Swift.String? + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public func encode(to encoder: Swift.Encoder) throws public var hashValue: Swift.Int { get } - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: SoulverCore.Holiday, b: SoulverCore.Holiday) -> Swift.Bool + public init(from decoder: Swift.Decoder) throws +} +extension Holiday { + public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool } @objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation { @objc override dynamic public var isAsynchronous: Swift.Bool { @@ -2180,8 +2205,8 @@ public struct Holiday : Swift.Hashable, Swift.Equatable { case ready case executing case finished - public typealias RawValue = Swift.String public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String public var rawValue: Swift.String { get } @@ -2206,16 +2231,20 @@ public struct Timespan : Swift.Equatable { public static func == (a: SoulverCore.Timespan, b: SoulverCore.Timespan) -> Swift.Bool } public typealias LineIndex = Swift.Int -@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable { - public var copy: SoulverCore.LineSheet { +@_hasMissingDesignatedInitializers final public class LineSheet : Swift.Codable { + final public var copy: SoulverCore.LineSheet { get } - public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { + final public subscript(index: SoulverCore.LineIndex) -> SoulverCore.Line { + get + set + } + final public var allLineReferences: [SoulverCore.LineIndex : SoulverCore.LineReference] { get } required public init(from decoder: Swift.Decoder) throws - public func encode(to encoder: Swift.Encoder) throws - public var debugDescription: Swift.String { + final public func encode(to encoder: Swift.Encoder) throws + final public var debugDescription: Swift.String { get } @objc deinit diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/Info.plist b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/Info.plist index db78b691b..71251bc84 100644 --- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/Info.plist +++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/Info.plist @@ -17,29 +17,29 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.3.1 + 1.4.0 CFBundleSupportedPlatforms MacOSX CFBundleVersion - 16 + 17 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 12D4e + 12E262 DTPlatformName macosx DTPlatformVersion - 11.1 + 11.3 DTSDKBuild - 20C63 + 20E214 DTSDKName - macosx11.1 + macosx11.3 DTXcode - 1240 + 1250 DTXcodeBuild - 12D4e + 12E262 LSMinimumSystemVersion 10.14.4 NSHumanReadableCopyright diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json index a2af21f32..d64a82ccc 100644 --- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json +++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json @@ -711,8 +711,8 @@ }, "RON": { "aliases": [ - "romanian lei", - "romanian leis" + "romanian leu", + "romanian lei" ], "symbol": "RON" }, @@ -998,7 +998,7 @@ "MDL": { "aliases": [ "moldovan leu", - "moldovan leus" + "moldovan lei" ], "symbol": "MDL" }, @@ -1042,7 +1042,9 @@ "pence": { "aliases": [ "penny", - "pennies" + "pennies", + "british pence", + "GBX" ], "symbol": "pence" }, diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/SoulverCore b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/SoulverCore index 514dc518a..71544e678 100755 Binary files a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/SoulverCore and b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/SoulverCore differ diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources index 014bd3d8b..168aa734c 100644 --- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources +++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources @@ -6,7 +6,7 @@ Resources/Info.plist - IdaUVuml1gjm5IEMpx3M9vvbRqA= + TE0AvZs0m3F6SyNRTOO3ZwjskXA= Resources/de.lproj/Cities.json @@ -102,7 +102,7 @@ hash - yOmTSUY2tP5UbixhFVe/eQIaRlg= + T1fY6yGBPqbnKiBmMxhL1u//wYY= optional @@ -357,7 +357,7 @@ hash2 - 1Kv2EG7R8UWfMYYEbLha7mFHsRNB+bqWOoi4fktLoBw= + id+H2KZ1dfx0fQa0jKNmAsF+2z8vZTwMO3H2ot9CJfA= Headers/SoulverCore.h @@ -371,84 +371,84 @@ hash2 - C5z8ShDdaAGRVM4+X3PYPo/C8lH2ewYdmoVo+WaRQiM= + SURDCBJlwVB+rqkv9/q6lLO9ihbWI777JS9dWzW1qcs= Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftinterface hash2 - EJK8jE0h9x+4LikqbPfD13jubJL+faMR8p0oUEBhyF0= + +bC4GRll39eACeqbnZXoBYmRKCvac95MxhHfiWeJy60= Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftmodule hash2 - pO1AHcFJkY7V11pcqdhAY5m6/ZdUG/mpEGOUD9HwpoQ= + 3iiAcSCBdB+IDi6kNb0bCsH8kcf6Ht9zyhyEHCR1+XI= Modules/SoulverCore.swiftmodule/arm64.swiftdoc hash2 - C5z8ShDdaAGRVM4+X3PYPo/C8lH2ewYdmoVo+WaRQiM= + SURDCBJlwVB+rqkv9/q6lLO9ihbWI777JS9dWzW1qcs= Modules/SoulverCore.swiftmodule/arm64.swiftinterface hash2 - EJK8jE0h9x+4LikqbPfD13jubJL+faMR8p0oUEBhyF0= + +bC4GRll39eACeqbnZXoBYmRKCvac95MxhHfiWeJy60= Modules/SoulverCore.swiftmodule/arm64.swiftmodule hash2 - pO1AHcFJkY7V11pcqdhAY5m6/ZdUG/mpEGOUD9HwpoQ= + 3iiAcSCBdB+IDi6kNb0bCsH8kcf6Ht9zyhyEHCR1+XI= Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc hash2 - QWRVn095RyGhFuLVHtWNt4NpSFxJafFan6M4XefpX6g= + vnFHOrn8oLRJSls+wEcfMUpX9yLv9yFrlsXPoYNUFyk= Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface hash2 - WSQVnf3ml3/0+tjksGszt70TVbQWeNf7QmAiq5B1luI= + fwzhFK3qyfSQSLtfFFmsVDKnBAFCtgilGKQx1wBmeFA= Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftmodule hash2 - A1zearB+ZIylXZAD2MSumrCy9q2jt17jrJk5eRFwbZo= + //0rLWJ+gANpBaBlJjlRQ5GtSLZsq3sX5qIyVnNojTs= Modules/SoulverCore.swiftmodule/x86_64.swiftdoc hash2 - QWRVn095RyGhFuLVHtWNt4NpSFxJafFan6M4XefpX6g= + vnFHOrn8oLRJSls+wEcfMUpX9yLv9yFrlsXPoYNUFyk= Modules/SoulverCore.swiftmodule/x86_64.swiftinterface hash2 - WSQVnf3ml3/0+tjksGszt70TVbQWeNf7QmAiq5B1luI= + fwzhFK3qyfSQSLtfFFmsVDKnBAFCtgilGKQx1wBmeFA= Modules/SoulverCore.swiftmodule/x86_64.swiftmodule hash2 - A1zearB+ZIylXZAD2MSumrCy9q2jt17jrJk5eRFwbZo= + //0rLWJ+gANpBaBlJjlRQ5GtSLZsq3sX5qIyVnNojTs= Modules/module.modulemap @@ -462,7 +462,7 @@ hash2 - FabXJ+vUCM9hhqlYrGD/lhTKlizLuLyL9GTxX+gILlQ= + MeBvJm7n/4/9qFXFqn9mhWx+NtR7gB2Ycd3GeFS57PM= Resources/de.lproj/Cities.json @@ -559,7 +559,7 @@ hash2 - IlEn3hbZGuCjMSH9gZO+PFLqJ+5ww2JgW16wGmJsbrE= + 6yTfHuscCVEEzTuLAe3kM06BC3W+YpJ+18a+KuNIgpM= optional