import Foundation public enum RDEPUBCFICompatibility { public static func parseLossy(_ rawValue: String?) -> RDEPUBCFI? { try? RDEPUBCFIParser.parse(rawValue) } public static func parseRangeLossy(_ rawValue: String?) -> RDEPUBCFIRange? { if let parsed = try? RDEPUBCFIParser.parseRange(rawValue) { return parsed } guard let rawValue, !rawValue.isEmpty else { return nil } let separators = ["..", "-"] let separator = separators.first(where: { rawValue.contains($0) }) guard let separator else { return nil } let parts = rawValue.components(separatedBy: separator) guard parts.count == 2, let start = parseLossy(parts[0]), let end = parseLossy(parts[1]) else { return nil } return RDEPUBCFIRange(parent: nil, start: start, end: end) } }