Modifique a fatia da função string para string para retornar o último índice se a string não for encontrada

Eu tenho uma função de fatia que eu tenhoaqui. Eu queria saber como posso modificá-lo para que, se oto string não foi encontrada, mas encontroufrom retornará o índice final de toda a string (.count-1) No momento, está obviamente travando se eu ligar.slice e não háto sequência encontrada.

extension String {

    func slice(from: String, to: String) -> String? {

        return (range(of: from)?.upperBound).flatMap { substringFrom in
            (range(of: to, range: substringFrom..<endIndex)?.lowerBound).map { substringTo in
                String(self[substringFrom..<substringTo])
            }
        }
    }
}

questionAnswers(1)

yourAnswerToTheQuestion