20 if (
name.is_empty()) {
25 const bool has_leading_digit = std::isdigit(
name[0]);
32 if (has_leading_digit) {
40 offset +=
name.size();
41 return pxr::TfMakeValidIdentifier({buf.
data(), offset});
44 for (
auto cp : pxr::TfUtf8CodePointView{
name}) {
45 constexpr pxr::TfUtf8CodePoint cp_underscore = pxr::TfUtf8CodePointFromAscii(
'_');
46 const bool cp_allowed = first ? (cp == cp_underscore || pxr::TfIsUtf8CodePointXidStart(cp)) :
47 pxr::TfIsUtf8CodePointXidContinue(cp);
58 return {buf.
data(), offset};