TYPEMAP

string           T_STRING
std::string      T_STRING
panda::string    T_STRING
string_view      T_STRING_VIEW
std::string_view T_STRING_VIEW

######################################################################
INPUT

T_STRING
  { STRLEN __${var}_len;
    const char* __${var}_buf = SvPV($arg, __${var}_len);
    $var.assign(__${var}_buf, __${var}_len); }
    
T_STRING_VIEW
  { STRLEN __${var}_len;
    const char* __${var}_buf = SvPV($arg, __${var}_len);
    $var = decltype($var)(__${var}_buf, __${var}_len); }

######################################################################
OUTPUT

T_STRING
    sv_setpvn((SV*)$arg, $var.data(), $var.length());

T_STRING_VIEW
    sv_setpvn((SV*)$arg, $var.data(), $var.length());