метод экземпляра 'к(тип:)' требует 'строка' соответствовать 'expressiblebyintegerliteral'

data

я с помощью этого расширения я нашел на переполнение стека:

extension data {  init<t>(from value: t) {    self = swift.withunsafebytes(of: value) { data($0) }  }  func to<t>(type: t.type) -> t? where t: expressiblebyintegerliteral {    var value: t = 0    guard count >= memorylayout.size(ofvalue: value) else { return nil }    _ = swift.withunsafemutablebytes(of: &value, { copybytes(to: $0)} )    return value  }}
stringdata

я использую это, чтобы закодировать и обратно.

первая часть-это хорошо, но когда я пытаюсь расшифровать данные, используя

let text = data.to(type: string.self)

я получаю эту ошибку:

<р>метод экземпляра 'к(тип:)' требует 'строка' соответствовать 'expressiblebyintegerliteral'</р>

любые идеи?