1 // Copyright 2023-present 650 Industries. All rights reserved. 2 3 import ExpoModulesCore 4 5 enum Encoding: String, Enumerable { 6 // Equivalents of String.Encoding 7 case ascii 8 case nextstep 9 case japaneseeuc 10 case utf8 11 case isolatin1 12 case symbol 13 case nonlossyascii 14 case shiftjis 15 case isolatin2 16 case unicode 17 case windowscp1251 18 case windowscp1252 19 case windowscp1253 20 case windowscp1254 21 case windowscp1250 22 case iso2022jp 23 case macosroman 24 case utf16 25 case utf16bigendian 26 case utf16littleendian 27 case utf32 28 case utf32bigendian 29 case utf32littleendian 30 31 // Without equivalents in String.Encoding 32 case base64 33 toStringEncodingnull34 func toStringEncoding() -> String.Encoding? { 35 switch self { 36 case .ascii: 37 return .ascii 38 case .nextstep: 39 return .nextstep 40 case .japaneseeuc: 41 return .japaneseEUC 42 case .utf8: 43 return .utf8 44 case .isolatin1: 45 return .isoLatin1 46 case .symbol: 47 return .symbol 48 case .nonlossyascii: 49 return .nonLossyASCII 50 case .shiftjis: 51 return .shiftJIS 52 case .isolatin2: 53 return .isoLatin2 54 case .unicode: 55 return .unicode 56 case .windowscp1251: 57 return .windowsCP1251 58 case .windowscp1252: 59 return .windowsCP1252 60 case .windowscp1253: 61 return .windowsCP1253 62 case .windowscp1254: 63 return .windowsCP1254 64 case .windowscp1250: 65 return .windowsCP1250 66 case .iso2022jp: 67 return .iso2022JP 68 case .macosroman: 69 return .macOSRoman 70 case .utf16: 71 return .utf16 72 case .utf16bigendian: 73 return .utf16BigEndian 74 case .utf16littleendian: 75 return .utf16LittleEndian 76 case .utf32: 77 return .utf32 78 case .utf32bigendian: 79 return .utf32BigEndian 80 case .utf32littleendian: 81 return .utf32LittleEndian 82 83 // Cases that don't have their own equivalent in String.Encoding 84 case .base64: 85 return nil 86 } 87 } 88 } 89