LMAssembly // Again use struct in lieu of class if possible.

This commit is contained in:
ShikiSuen 2022-11-23 23:40:57 +08:00
parent 0fa61f02fb
commit e8bb808836
7 changed files with 33 additions and 30 deletions

View File

@ -56,40 +56,43 @@ extension vChewingLM {
//
// Reverse
// Reverse
let lmCore = LMCoreNS(
var lmCore = LMCoreNS(
reverse: false, consolidate: false, defaultScore: -9.9, forceDefaultScore: false
)
let lmMisc = LMCoreNS(
var lmMisc = LMCoreNS(
reverse: true, consolidate: false, defaultScore: -1.0, forceDefaultScore: false
)
//
// 100MB
static let lmCNS = vChewingLM.LMCoreNS(
static var lmCNS = vChewingLM.LMCoreNS(
reverse: true, consolidate: false, defaultScore: -11.0, forceDefaultScore: false
)
static let lmSymbols = vChewingLM.LMCoreNS(
static var lmSymbols = vChewingLM.LMCoreNS(
reverse: true, consolidate: false, defaultScore: -13.0, forceDefaultScore: false
)
// currentCassetteMetadata
static let lmCassette = LMCassette()
public var currentCassette: LMCassette { Self.lmCassette }
static var lmCassette = LMCassette()
public var currentCassette: LMCassette {
get { Self.lmCassette }
set { Self.lmCassette = newValue }
}
// 使
// 使使
let lmUserPhrases = LMCoreEX(
var lmUserPhrases = LMCoreEX(
reverse: true, consolidate: true, defaultScore: 0, forceDefaultScore: false
)
let lmFiltered = LMCoreEX(
var lmFiltered = LMCoreEX(
reverse: true, consolidate: true, defaultScore: 0, forceDefaultScore: true
)
let lmUserSymbols = LMCoreEX(
var lmUserSymbols = LMCoreEX(
reverse: true, consolidate: true, defaultScore: -12.0, forceDefaultScore: true
)
let lmReplacements = LMReplacements()
let lmAssociates = LMAssociates()
let lmPlainBopomofo = LMPlainBopomofo()
var lmReplacements = LMReplacements()
var lmAssociates = LMAssociates()
var lmPlainBopomofo = LMPlainBopomofo()
// MARK: -

View File

@ -12,7 +12,7 @@ import PinyinPhonaConverter
import Shared
extension vChewingLM {
public class LMAssociates {
@frozen public struct LMAssociates {
var rangeMap: [String: [(Range<String.Index>, Int)]] = [:]
var strData: String = ""
@ -35,7 +35,7 @@ extension vChewingLM {
return "(\(arrTarget0),\(arrTarget[1]))"
}
@discardableResult public func open(_ path: String) -> Bool {
@discardableResult public mutating func open(_ path: String) -> Bool {
if isLoaded { return false }
LMConsolidator.fixEOF(path: path)
@ -65,7 +65,7 @@ extension vChewingLM {
return true
}
public func clear() {
public mutating func clear() {
rangeMap.removeAll()
}

View File

@ -14,7 +14,7 @@ import Shared
extension vChewingLM {
/// 便使
public class LMCassette {
@frozen public struct LMCassette {
public private(set) var nameShort: String = ""
public private(set) var nameENG: String = ""
public private(set) var nameCJK: String = ""
@ -65,7 +65,7 @@ extension vChewingLM {
///
/// - Parameter path:
/// - Returns:
@discardableResult public func open(_ path: String) -> Bool {
@discardableResult public mutating func open(_ path: String) -> Bool {
if isLoaded { return false }
if FileManager.default.fileExists(atPath: path) {
do {
@ -156,7 +156,7 @@ extension vChewingLM {
return false
}
public func clear() {
public mutating func clear() {
keyNameMap.removeAll()
charDefMap.removeAll()
charDefWildcardMap.removeAll()

View File

@ -16,7 +16,7 @@ extension vChewingLM {
/// range strData
/// C++ ParselessLM Swift
/// For
public class LMCoreEX {
@frozen public struct LMCoreEX {
/// 便 strData
var rangeMap: [String: [Range<String.Index>]] = [:]
///
@ -56,7 +56,7 @@ extension vChewingLM {
///
/// - parameters:
/// - path:
@discardableResult public func open(_ path: String) -> Bool {
@discardableResult public mutating func open(_ path: String) -> Bool {
if isLoaded { return false }
if allowConsolidation {
@ -88,7 +88,7 @@ extension vChewingLM {
}
///
public func clear() {
public mutating func clear() {
rangeMap.removeAll()
}

View File

@ -14,7 +14,7 @@ extension vChewingLM {
/// LMCore LMCoreNS plist
/// mac
/// 使 plist
public class LMCoreNS {
@frozen public struct LMCoreNS {
/// UTF8
var rangeMap: [String: [Data]] = [:]
/// LMCoreNS
@ -57,7 +57,7 @@ extension vChewingLM {
///
/// - parameters:
/// - path:
@discardableResult public func open(_ path: String) -> Bool {
@discardableResult public mutating func open(_ path: String) -> Bool {
if isLoaded { return false }
do {
@ -74,7 +74,7 @@ extension vChewingLM {
}
///
public func clear() {
public mutating func clear() {
rangeMap.removeAll()
}

View File

@ -11,7 +11,7 @@ import Foundation
import Shared
extension vChewingLM {
public class LMPlainBopomofo {
@frozen public struct LMPlainBopomofo {
var rangeMap: [String: String] = [:]
public var count: Int { rangeMap.count }
@ -22,7 +22,7 @@ extension vChewingLM {
public var isLoaded: Bool { !rangeMap.isEmpty }
@discardableResult public func open(_ path: String) -> Bool {
@discardableResult public mutating func open(_ path: String) -> Bool {
if isLoaded { return false }
do {
@ -39,7 +39,7 @@ extension vChewingLM {
return true
}
public func clear() {
public mutating func clear() {
rangeMap.removeAll()
}

View File

@ -10,7 +10,7 @@
import Shared
extension vChewingLM {
public class LMReplacements {
@frozen public struct LMReplacements {
var rangeMap: [String: Range<String.Index>] = [:]
var strData: String = ""
@ -22,7 +22,7 @@ extension vChewingLM {
public var isLoaded: Bool { !rangeMap.isEmpty }
@discardableResult public func open(_ path: String) -> Bool {
@discardableResult public mutating func open(_ path: String) -> Bool {
if isLoaded { return false }
LMConsolidator.fixEOF(path: path)
@ -50,7 +50,7 @@ extension vChewingLM {
return true
}
public func clear() {
public mutating func clear() {
rangeMap.removeAll()
}