mirror of https://github.com/swig/swig
66 lines
1.7 KiB
OpenEdge ABL
66 lines
1.7 KiB
OpenEdge ABL
%module cpp17_std_filesystem
|
|
|
|
%include <std_string.i>
|
|
%include <std_filesystem.i>
|
|
|
|
%{
|
|
#include <filesystem>
|
|
%}
|
|
|
|
%inline %{
|
|
/* Test the "out" typemap for std::filesystem::path */
|
|
std::filesystem::path makePath(const std::string& s) {
|
|
return std::filesystem::path(s);
|
|
}
|
|
|
|
/**
|
|
* There is no "out" typemap for a pointer to a path, so
|
|
* this should return a wrapped instance of a path
|
|
* instead of the native path type for the target language.
|
|
*/
|
|
std::filesystem::path * makePathPtr(const std::string& s) {
|
|
static std::filesystem::path p(s);
|
|
return &p;
|
|
}
|
|
|
|
/**
|
|
* There is no "out" typemap for a non-const reference to a path, so
|
|
* this should return a wrapped instance of a std::filesystem::path instead of
|
|
* the native path type for the target language.
|
|
*/
|
|
std::filesystem::path& makePathRef(const std::string& s) {
|
|
static std::filesystem::path p(s);
|
|
return p;
|
|
}
|
|
|
|
/**
|
|
* There is no "out" typemap for a const reference to a path, so
|
|
* this should return a wrapped instance of a std::filesystem::path
|
|
* instead of the native path type for the target language.
|
|
*/
|
|
const std::filesystem::path & makePathConstRef(const std::string & s) {
|
|
static std::filesystem::path p(s);
|
|
return p;
|
|
}
|
|
|
|
/* Test the "in" typemap for std::filesystem::path */
|
|
std::string pathToStr(std::filesystem::path p) {
|
|
return p.string();
|
|
}
|
|
|
|
/* Test the "in" typemap for const std::filesystem::path & */
|
|
std::string pathConstRefToStr(const std::filesystem::path & p) {
|
|
return p.string();
|
|
}
|
|
|
|
/* Test the "in" typemap for const std::filesystem::path * */
|
|
std::string pathPtrToStr(const std::filesystem::path * p) {
|
|
return p->string();
|
|
}
|
|
|
|
namespace stdfs = std::filesystem;
|
|
std::filesystem::path roundTrip(const stdfs::path& p) {
|
|
return p;
|
|
}
|
|
%}
|