LMAssembly // Use class in lieu of struct.

This commit is contained in:
ShikiSuen 2022-10-18 18:23:18 +08:00
parent da891266f5
commit 5ca4138b63
8 changed files with 38 additions and 38 deletions

View File

@ -56,40 +56,40 @@ extension vChewingLM {
//
// Reverse
// Reverse
var lmCore = LMCoreNS(
let lmCore = LMCoreNS(
reverse: false, consolidate: false, defaultScore: -9.9, forceDefaultScore: false
)
var lmMisc = LMCoreNS(
let lmMisc = LMCoreNS(
reverse: true, consolidate: false, defaultScore: -1.0, forceDefaultScore: false
)
//
// 100MB
static var lmCNS = vChewingLM.LMCoreNS(
static let lmCNS = vChewingLM.LMCoreNS(
reverse: true, consolidate: false, defaultScore: -11.0, forceDefaultScore: false
)
static var lmSymbols = vChewingLM.LMCoreNS(
static let lmSymbols = vChewingLM.LMCoreNS(
reverse: true, consolidate: false, defaultScore: -13.0, forceDefaultScore: false
)
// currentCassetteMetadata
static var lmCassette = LMCassette()
static let lmCassette = LMCassette()
public var currentCassette: LMCassette { Self.lmCassette }
// 使
// 使使
var lmUserPhrases = LMCoreEX(
let lmUserPhrases = LMCoreEX(
reverse: true, consolidate: true, defaultScore: 0, forceDefaultScore: false
)
var lmFiltered = LMCoreEX(
let lmFiltered = LMCoreEX(
reverse: true, consolidate: true, defaultScore: 0, forceDefaultScore: true
)
var lmUserSymbols = LMCoreEX(
let lmUserSymbols = LMCoreEX(
reverse: true, consolidate: true, defaultScore: -12.0, forceDefaultScore: true
)
var lmReplacements = LMReplacements()
var lmAssociates = LMAssociates()
var lmPlainBopomofo = LMPlainBopomofo()
let lmReplacements = LMReplacements()
let lmAssociates = LMAssociates()
let lmPlainBopomofo = LMPlainBopomofo()
// MARK: -
@ -139,7 +139,7 @@ extension vChewingLM {
public func loadUserPhrasesData(path: String, filterPath: String) {
DispatchQueue.main.async {
if FileManager.default.isReadableFile(atPath: path) {
self.lmUserPhrases.close()
self.lmUserPhrases.clear()
self.lmUserPhrases.open(path)
vCLog("lmUserPhrases: \(self.lmUserPhrases.count) entries of data loaded from: \(path)")
} else {
@ -148,7 +148,7 @@ extension vChewingLM {
}
DispatchQueue.main.async {
if FileManager.default.isReadableFile(atPath: filterPath) {
self.lmFiltered.close()
self.lmFiltered.clear()
self.lmFiltered.open(filterPath)
vCLog("lmFiltered: \(self.lmFiltered.count) entries of data loaded from: \(path)")
} else {
@ -160,7 +160,7 @@ extension vChewingLM {
public func loadUserSymbolData(path: String) {
DispatchQueue.main.async {
if FileManager.default.isReadableFile(atPath: path) {
self.lmUserSymbols.close()
self.lmUserSymbols.clear()
self.lmUserSymbols.open(path)
vCLog("lmUserSymbol: \(self.lmUserSymbols.count) entries of data loaded from: \(path)")
} else {
@ -172,7 +172,7 @@ extension vChewingLM {
public func loadUserAssociatesData(path: String) {
DispatchQueue.main.async {
if FileManager.default.isReadableFile(atPath: path) {
self.lmAssociates.close()
self.lmAssociates.clear()
self.lmAssociates.open(path)
vCLog("lmAssociates: \(self.lmAssociates.count) entries of data loaded from: \(path)")
} else {
@ -184,7 +184,7 @@ extension vChewingLM {
public func loadReplacementsData(path: String) {
DispatchQueue.main.async {
if FileManager.default.isReadableFile(atPath: path) {
self.lmReplacements.close()
self.lmReplacements.clear()
self.lmReplacements.open(path)
vCLog("lmReplacements: \(self.lmReplacements.count) entries of data loaded from: \(path)")
} else {
@ -196,7 +196,7 @@ extension vChewingLM {
public func loadUserSCPCSequencesData(path: String) {
DispatchQueue.main.async {
if FileManager.default.isReadableFile(atPath: path) {
self.lmPlainBopomofo.close()
self.lmPlainBopomofo.clear()
self.lmPlainBopomofo.open(path)
vCLog("lmPlainBopomofo: \(self.lmPlainBopomofo.count) entries of data loaded from: \(path)")
} else {
@ -208,7 +208,7 @@ extension vChewingLM {
public static func loadCassetteData(path: String) {
DispatchQueue.main.async {
if FileManager.default.isReadableFile(atPath: path) {
Self.lmCassette.close()
Self.lmCassette.clear()
Self.lmCassette.open(path)
vCLog("lmCassette: \(Self.lmCassette.count) entries of data loaded from: \(path)")
} else {

View File

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

View File

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

View File

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

View File

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

View File

@ -11,7 +11,7 @@ import Foundation
import Shared
extension vChewingLM {
@frozen public struct LMPlainBopomofo {
public class 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 mutating func open(_ path: String) -> Bool {
@discardableResult public func open(_ path: String) -> Bool {
if isLoaded { return false }
do {
@ -39,7 +39,7 @@ extension vChewingLM {
return true
}
public mutating func close() {
public func clear() {
rangeMap.removeAll()
}

View File

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

View File

@ -21,7 +21,7 @@ private let testDataPath: String = packageRootPath + "/Tests/TestCINData/"
final class LMCassetteTests: XCTestCase {
func testCassetteLoadWubi98() throws {
let pathCINFile = testDataPath + "wubi98.cin"
var lmCassette = vChewingLM.LMCassette()
let lmCassette98 = vChewingLM.LMCassette()
NSLog("LMCassette: Start loading CIN.")
lmCassette98.open(pathCINFile)
NSLog("LMCassette: Finished loading CIN. Entries: \(lmCassette98.count)")
@ -36,7 +36,7 @@ final class LMCassetteTests: XCTestCase {
func testCassetteLoadWubi86() throws {
let pathCINFile = testDataPath + "wubi86.cin"
var lmCassette = vChewingLM.LMCassette()
let lmCassette86 = vChewingLM.LMCassette()
NSLog("LMCassette: Start loading CIN.")
lmCassette86.open(pathCINFile)
NSLog("LMCassette: Finished loading CIN. Entries: \(lmCassette86.count)")