func bky_rangeFromNSRange()

in Sources/Common/RangeHelper.swift [25:38]


func bky_rangeFromNSRange(_ nsRange: NSRange, forString string: String) -> Range<String.Index>? {
  // Get the start/end indices within `string` based on `nsRange`
  if let fromUTF16 = string.utf16.index(string.utf16.startIndex,
                                     offsetBy: nsRange.location, limitedBy: string.utf16.endIndex),
    let toUTF16 = string.utf16.index(fromUTF16,
                                     offsetBy: nsRange.length, limitedBy: string.utf16.endIndex),
    let from = String.Index(fromUTF16, within: string),
    let to = String.Index(toUTF16, within: string)
  {
    return from ..< to
  }

  return nil
}