/usr/share/swig/3.0.12/d
NameSizeModeActions
boost_shared_ptr.i82240644editdlrm
carrays.i25790644editdlrm
cpointer.i34820644editdlrm
d.swg13490644editdlrm
dclassgen.swg36190644editdlrm
ddirectives.swg5230644editdlrm
denums.swg19370644editdlrm
dexception.swg11740644editdlrm
dhead.swg86080644editdlrm
director.swg11780644editdlrm
dkw.swg24210644editdlrm
dmemberfunctionpointers.swg26750644editdlrm
doperators.swg81200644editdlrm
dprimitives.swg46060644editdlrm
dstrings.swg25690644editdlrm
dswigtype.swg52420644editdlrm
dvoid.swg5590644editdlrm
std_common.i1020644editdlrm
std_deque.i280644editdlrm
std_except.i20460644editdlrm
std_map.i17450644editdlrm
std_pair.i7030644editdlrm
std_shared_ptr.i680644editdlrm
std_string.i31090644editdlrm
std_vector.i163990644editdlrm
stl.i3570644editdlrm
typemaps.i110710644editdlrm
wrapperloader.swg78950644editdlrm
Edit: /usr/share/swig/3.0.12/d/std_string.i (3109B)
/* ----------------------------------------------------------------------------- * std_string.i * * Typemaps for std::string and const std::string& * These are mapped to a D char[] 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 %} namespace std { %naturalvar string; class string; %define SWIGD_STD_STRING_TYPEMAPS(DW_STRING_TYPE, DP_STRING_TYPE, FROM_STRINGZ, TO_STRINGZ) // string %typemap(ctype) string, const string & "char *" %typemap(imtype) string, const string & #DW_STRING_TYPE %typemap(dtype) string, const string & #DP_STRING_TYPE %typemap(in, canthrow=1) string, const string & %{ if (!$input) { SWIG_DSetPendingException(SWIG_DIllegalArgumentException, "null string"); return $null; } $1.assign($input); %} %typemap(in, canthrow=1) const string & %{ if (!$input) { SWIG_DSetPendingException(SWIG_DIllegalArgumentException, "null string"); return $null; } $*1_ltype $1_str($input); $1 = &$1_str; %} %typemap(out) string %{ $result = SWIG_d_string_callback($1.c_str()); %} %typemap(out) const string & %{ $result = SWIG_d_string_callback($1->c_str()); %} %typemap(din) string, const string & "($dinput ? TO_STRINGZ($dinput) : null)" %typemap(dout, excode=SWIGEXCODE) string, const string & { DP_STRING_TYPE ret = FROM_STRINGZ($imcall);$excode return ret; } %typemap(directorin) string, const string & %{ $input = SWIG_d_string_callback($1.c_str()); %} %typemap(directorout, canthrow=1) string %{ if (!$input) { SWIG_DSetPendingException(SWIG_DIllegalArgumentException, "null string"); return $null; } $result.assign($input); %} %typemap(directorout, canthrow=1, warning=SWIGWARN_TYPEMAP_THREAD_UNSAFE_MSG) const string & %{ if (!$input) { SWIG_DSetPendingException(SWIG_DIllegalArgumentException, "null string"); return $null; } /* possible thread/reentrant code problem */ static $*1_ltype $1_str; $1_str = $input; $result = &$1_str; %} %typemap(ddirectorin) string, const string & "FROM_STRINGZ($winput)" %typemap(ddirectorout) string, const string & "TO_STRINGZ($dcall)" %typemap(throws, canthrow=1) string, const string & %{ SWIG_DSetPendingException(SWIG_DException, $1.c_str()); return $null; %} %typemap(typecheck) string, const string & = char *; %enddef // We need to have the \0-terminated string conversion functions available in // the D proxy modules. #if (SWIG_D_VERSION == 1) // Could be easily extended to support Phobos as well. SWIGD_STD_STRING_TYPEMAPS(char*, char[], tango.stdc.stringz.fromStringz, tango.stdc.stringz.toStringz) %pragma(d) globalproxyimports = "static import tango.stdc.stringz;"; #else SWIGD_STD_STRING_TYPEMAPS(const(char)*, string, std.conv.to!string, std.string.toStringz) %pragma(d) globalproxyimports = %{ static import std.conv; static import std.string; %} #endif #undef SWIGD_STD_STRING_TYPEMAPS } // namespace std