| %module(directors="1") director_string_view; |
| |
| #if defined SWIGCSHARP || defined SWIGJAVA || defined SWIGLUA || defined SWIGPERL || defined SWIGPHP || defined SWIGRUBY |
| |
| %include std_string.i |
| %include std_string_view.i |
| |
| // Using thread unsafe wrapping |
| %warnfilter(SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR) A; |
| |
| %{ |
| #include <vector> |
| #include <string> |
| #include <string_view> |
| %} |
| |
| %feature("director") A; |
| %inline %{ |
| |
| struct A |
| { |
| A(const std::string& first) |
| : m_strings(1, first) |
| {} |
| |
| virtual ~A() {} |
| |
| virtual std::string_view get_first() const |
| { return get(0); } |
| |
| virtual std::string_view get(int n) const |
| { return m_strings[n]; } |
| |
| virtual std::string_view call_get_first() const |
| { return get_first(); } |
| |
| virtual std::string_view call_get(int n) const |
| { return get(n); } |
| |
| virtual int string_length(std::string_view s) const |
| { return (int)s.size(); } |
| |
| |
| virtual void process_text(const char *text) |
| { |
| } |
| |
| void call_process_func() { process_text("hello"); } |
| |
| private: |
| std::vector<std::string> m_strings; |
| }; |
| |
| %} |
| |
| #endif |