From 3bf9df6b2785fa6d951086978a3e66f49427166a Mon Sep 17 00:00:00 2001 From: FluorescentCIAAfricanAmerican <0934gj3049fk@protonmail.com> Date: Wed, 22 Apr 2020 12:56:21 -0400 Subject: 1 --- devtools/swigwin-1.3.34/Lib/python/std_carray.i | 54 +++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 devtools/swigwin-1.3.34/Lib/python/std_carray.i (limited to 'devtools/swigwin-1.3.34/Lib/python/std_carray.i') diff --git a/devtools/swigwin-1.3.34/Lib/python/std_carray.i b/devtools/swigwin-1.3.34/Lib/python/std_carray.i new file mode 100644 index 0000000..2e40757 --- /dev/null +++ b/devtools/swigwin-1.3.34/Lib/python/std_carray.i @@ -0,0 +1,54 @@ +%include + + +%fragment("StdCarrayTraits","header",fragment="StdSequenceTraits") +{ +namespace swig { + template + struct traits_asptr > { + static int asptr(PyObject *obj, std::carray **array) { + return traits_asptr_stdseq >::asptr(obj, array); + } + }; +} +} + +%warnfilter(SWIGWARN_IGNORE_OPERATOR_INDEX) std::carray::operator[]; + +%extend std::carray { + %fragment(SWIG_Traits_frag(std::carray<_Type, _Size >), "header", + fragment="PySwigIterator_T", + fragment=SWIG_Traits_frag(_Type), + fragment="StdCarrayTraits") { + namespace swig { + template <> struct traits > { + typedef pointer_category category; + static const char* type_name() { + return "std::carray<" #_Type "," #_Size " >"; + } + }; + } + } + + %typemaps_asptr(SWIG_TYPECHECK_VECTOR, swig::asptr, + SWIG_Traits_frag(std::carray<_Type, _Size >), + std::carray<_Type, _Size >); + + %typemap(out,noblock=1) iterator, const_iterator { + $result = SWIG_NewPointerObj(swig::make_output_iterator((const $type &)$1), + swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN); + } + + inline size_t __len__() const { return self->size(); } + + inline const _Type& __getitem__(size_t i) const { return (*self)[i]; } + + inline void __setitem__(size_t i, const _Type& v) { (*self)[i] = v; } + + + swig::PySwigIterator* __iter__(PyObject **PYTHON_SELF) { + return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF); + } +} + +%include -- cgit v1.2.3