| /* ----------------------------------------------------------------------------- |
| * std_string.i |
| * |
| * Typemaps for std::string and const std::string& |
| * These are mapped to a Go string and are passed around by value. |
| * |
| * To use non-const std::string references use the following %apply. Note |
| * that they are passed by value. |
| * %apply const std::string & {std::string &}; |
| * ----------------------------------------------------------------------------- */ |
| |
| %{ |
| #include <string> |
| %} |
| |
| namespace std { |
| |
| %naturalvar string; |
| |
| class string; |
| |
| %typemap(gotype) string, const string & "string" |
| |
| %typemap(in) string |
| %{ $1.assign($input.p, $input.n); %} |
| |
| %typemap(directorout) string |
| %{ $result.assign($input.p, $input.n); %} |
| |
| %typemap(out) string |
| %{ $result = _swig_makegostring($1.data(), $1.length()); %} |
| |
| %typemap(directorin) string |
| %{ $input = _swig_makegostring($1.data(), $1.length()); %} |
| |
| %typemap(in) const string & |
| %{ |
| $*1_ltype $1_str($input.p, $input.n); |
| $1 = &$1_str; |
| %} |
| |
| %typemap(directorout,warning=SWIGWARN_TYPEMAP_THREAD_UNSAFE_MSG) const string & |
| %{ |
| static $*1_ltype $1_str; |
| $1_str.assign($input.p, $input.n); |
| $result = &$1_str; |
| %} |
| |
| %typemap(out) const string & |
| %{ $result = _swig_makegostring((*$1).data(), (*$1).length()); %} |
| |
| %typemap(directorin) const string & |
| %{ $input = _swig_makegostring($1.data(), $1.length()); %} |
| |
| } |