in prod/php/ElasticOTel/Util/TextUtil.php [118:165]
public static function snakeToCamelCase(string $input): string
{
$inputLen = strlen($input);
$result = '';
$inputRemainderPos = 0;
while (true) {
$underscorePos = strpos($input, '_', $inputRemainderPos);
if ($underscorePos === false) {
break;
}
$result .= substr($input, $inputRemainderPos, $underscorePos - $inputRemainderPos);
$nonUnderscorePos = null;
for ($i = $underscorePos; $i !== $inputLen; ++$i) {
if ($input[$i] !== '_') {
$nonUnderscorePos = $i;
break;
}
}
if ($nonUnderscorePos === null) {
$inputRemainderPos = strlen($input);
break;
}
// Don't uppercase the first letter
if (self::isEmptyString($result)) {
$result .= $input[$nonUnderscorePos];
} else {
$result .= chr(self::toUpperCaseLetter(ord($input[$nonUnderscorePos])));
}
if ($nonUnderscorePos === $inputRemainderPos - 1) {
break;
}
$inputRemainderPos = $nonUnderscorePos + 1;
}
if ($inputRemainderPos === strlen($input)) {
return $result;
}
if (self::isEmptyString($result)) {
return $input;
}
return $result . substr($input, $inputRemainderPos, $inputLen - $inputRemainderPos);
}