tree cecb5e794fdb7be0135c549127d570d1b4ac56c7
parent e6590f1aa84734419d787dbdb38dcc070bea7060
author Cole Faust <colefaust@google.com> 1670107909 -0800
committer Matthias Maennich <matthias@maennich.net> 1670495598 +0000

Replace StringPiece with std::string_view

StringPiece was almost an identical copy of std::string_view,
probably added before kati was compiled with C++17. Replace
it with std::string_view now that we're on C++17.

Some of the differences between StringPiece and std::string_view are:

- myStringPiece.AppendToString(myString) becomes
  myString.append(myStringView)
- myStringPiece.as_string() becomes std::string(myStringView)
- string_view doesn't have .clear(), replaced with initializing a new
  string_view
- myStringPiece.get(0) becomes myStringView.at(0), with added bounds
  checking because string_view will throw if it's out of bounds while
  StringPiece will return 0 instead.
- StringPiece's substr() will prevent both the starting and ending
  indexes of the substring from going past the end of the StringPiece,
  but string_view will only do that for the ending index, and throw
  on out of bounds starting indicies.
- StringPiece could be initialized from a null char*, but string_view
  will crash when given null.

The tests caught some of the runtime issues, but more were
caught by testing a locally compiled ckati in the android source tree.
