in Cyborg/XmlParsing.swift [228:249]
init?(_ xmlString: XMLString) {
let count = Int(xmlString.count)
if let float = (xmlString
.withSignedIntegers { (buffer) -> (CGFloat?) in
var next: UnsafeMutablePointer<Int8>? = buffer
for i in 0..<count {
var current = Int8(xmlString.underlying.advanced(by: i).pointee)
buffer.advanced(by: i).assign(from: ¤t,
count: 1)
}
let result = strtod(buffer, &next)
if result == 0.0 && next == buffer {
return nil
} else {
return CGFloat(result)
}
}) {
self = float
} else {
return nil
}
}