@@ -215,9 +215,16 @@ public struct MySQLData: Equatable, Encodable {
215
215
/// Access the value as an binary floating point.
216
216
public func float< F> ( _ type: F . Type ) -> F ? where F: BinaryFloatingPoint {
217
217
switch storage {
218
- case . text( let data) : return data. flatMap { String ( data: $0, encoding: . ascii) }
219
- . flatMap { Float80 ( $0) }
220
- . flatMap { F . init ( $0) }
218
+ case . text( let data) :
219
+ #if arch(arm) || arch(arm64)
220
+ return data. flatMap { String ( data: $0, encoding: . ascii) }
221
+ . flatMap { Float ( $0) }
222
+ . flatMap { F . init ( $0) }
223
+ #else
224
+ return data. flatMap { String ( data: $0, encoding: . ascii) }
225
+ . flatMap { Float80 ( $0) }
226
+ . flatMap { F . init ( $0) }
227
+ #endif
221
228
case . binary( let binary) :
222
229
switch binary. storage {
223
230
case . integer1( let int8) : return F ( int8)
@@ -233,9 +240,15 @@ public struct MySQLData: Equatable, Encodable {
233
240
case . string( let data) :
234
241
switch binary. type {
235
242
case . MYSQL_TYPE_VARCHAR, . MYSQL_TYPE_VAR_STRING, . MYSQL_TYPE_STRING, . MYSQL_TYPE_DECIMAL, . MYSQL_TYPE_NEWDECIMAL:
243
+ #if arch(arm) || arch(arm64)
244
+ return String ( data: data, encoding: . ascii)
245
+ . flatMap { Float ( $0) }
246
+ . flatMap { F . init ( $0) }
247
+ #else
236
248
return String ( data: data, encoding: . ascii)
237
249
. flatMap { Float80 ( $0) }
238
250
. flatMap { F . init ( $0) }
251
+ #endif
239
252
default : return nil // TODO: support more
240
253
}
241
254
default : return nil
0 commit comments