[python] add %swig_sequence_iterator_with_making_function and
make %swig_sequence_iterator forward to it.
add %swig_sequence_forward_iterator too.
This commit is contained in:
parent
9c6d5dc53c
commit
3174e1488c
5 changed files with 19 additions and 11 deletions
|
|
@ -654,7 +654,15 @@ namespace swig
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
%define %swig_sequence_iterator(Make_output_iterator_func,Sequence...)
|
%define %swig_sequence_iterator(Sequence...)
|
||||||
|
%swig_sequence_iterator_with_making_function(swig::make_output_iterator,Sequence...)
|
||||||
|
%enddef
|
||||||
|
|
||||||
|
%define %swig_sequence_forward_iterator(Sequence...)
|
||||||
|
%swig_sequence_iterator_with_making_function(swig::make_output_forward_iterator,Sequence...)
|
||||||
|
%enddef
|
||||||
|
|
||||||
|
%define %swig_sequence_iterator_with_making_function(Make_output_iterator,Sequence...)
|
||||||
#if defined(SWIG_EXPORT_ITERATOR_METHODS)
|
#if defined(SWIG_EXPORT_ITERATOR_METHODS)
|
||||||
class iterator;
|
class iterator;
|
||||||
class reverse_iterator;
|
class reverse_iterator;
|
||||||
|
|
@ -663,15 +671,15 @@ namespace swig
|
||||||
|
|
||||||
%typemap(out,noblock=1,fragment="SwigPySequence_Cont")
|
%typemap(out,noblock=1,fragment="SwigPySequence_Cont")
|
||||||
iterator, reverse_iterator, const_iterator, const_reverse_iterator {
|
iterator, reverse_iterator, const_iterator, const_reverse_iterator {
|
||||||
$result = SWIG_NewPointerObj(Make_output_iterator_func(%static_cast($1,const $type &)),
|
$result = SWIG_NewPointerObj(Make_output_iterator(%static_cast($1,const $type &)),
|
||||||
swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
|
swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
|
||||||
}
|
}
|
||||||
%typemap(out,noblock=1,fragment="SwigPySequence_Cont")
|
%typemap(out,noblock=1,fragment="SwigPySequence_Cont")
|
||||||
std::pair<iterator, iterator>, std::pair<const_iterator, const_iterator> {
|
std::pair<iterator, iterator>, std::pair<const_iterator, const_iterator> {
|
||||||
$result = PyTuple_New(2);
|
$result = PyTuple_New(2);
|
||||||
PyTuple_SetItem($result,0,SWIG_NewPointerObj(Make_output_iterator_func(%static_cast($1,const $type &).first),
|
PyTuple_SetItem($result,0,SWIG_NewPointerObj(Make_output_iterator(%static_cast($1,const $type &).first),
|
||||||
swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN));
|
swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN));
|
||||||
PyTuple_SetItem($result,1,SWIG_NewPointerObj(Make_output_iterator_func(%static_cast($1,const $type &).second),
|
PyTuple_SetItem($result,1,SWIG_NewPointerObj(Make_output_iterator(%static_cast($1,const $type &).second),
|
||||||
swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN));
|
swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -680,7 +688,7 @@ namespace swig
|
||||||
%typemap(out,noblock=1,fragment="SwigPyPairBoolOutputIterator")
|
%typemap(out,noblock=1,fragment="SwigPyPairBoolOutputIterator")
|
||||||
std::pair<iterator, bool>, std::pair<const_iterator, bool> {
|
std::pair<iterator, bool>, std::pair<const_iterator, bool> {
|
||||||
$result = PyTuple_New(2);
|
$result = PyTuple_New(2);
|
||||||
PyTuple_SetItem($result,0,SWIG_NewPointerObj(Make_output_iterator_func(%static_cast($1,const $type &).first),
|
PyTuple_SetItem($result,0,SWIG_NewPointerObj(Make_output_iterator(%static_cast($1,const $type &).first),
|
||||||
swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN));
|
swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN));
|
||||||
PyTuple_SetItem($result,1,SWIG_From(bool)(%static_cast($1,const $type &).second));
|
PyTuple_SetItem($result,1,SWIG_From(bool)(%static_cast($1,const $type &).second));
|
||||||
}
|
}
|
||||||
|
|
@ -715,7 +723,7 @@ namespace swig
|
||||||
%newobject iterator(PyObject **PYTHON_SELF);
|
%newobject iterator(PyObject **PYTHON_SELF);
|
||||||
%extend {
|
%extend {
|
||||||
swig::SwigPyIterator* iterator(PyObject **PYTHON_SELF) {
|
swig::SwigPyIterator* iterator(PyObject **PYTHON_SELF) {
|
||||||
return Make_output_iterator_func(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
|
return Make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(SWIGPYTHON_BUILTIN)
|
#if defined(SWIGPYTHON_BUILTIN)
|
||||||
|
|
@ -764,7 +772,7 @@ namespace swig
|
||||||
|
|
||||||
|
|
||||||
%define %swig_sequence_methods_common(Sequence...)
|
%define %swig_sequence_methods_common(Sequence...)
|
||||||
%swig_sequence_iterator(swig::make_output_iterator,%arg(Sequence))
|
%swig_sequence_iterator(%arg(Sequence))
|
||||||
%swig_container_methods(%arg(Sequence))
|
%swig_container_methods(%arg(Sequence))
|
||||||
|
|
||||||
%fragment("SwigPySequence_Base");
|
%fragment("SwigPySequence_Base");
|
||||||
|
|
|
||||||
|
|
@ -149,7 +149,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
%define %swig_map_common(Map...)
|
%define %swig_map_common(Map...)
|
||||||
%swig_sequence_iterator(swig::make_output_iterator,Map);
|
%swig_sequence_iterator(Map);
|
||||||
%swig_container_methods(Map)
|
%swig_container_methods(Map)
|
||||||
|
|
||||||
#if defined(SWIGPYTHON_BUILTIN)
|
#if defined(SWIGPYTHON_BUILTIN)
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%define %swig_set_methods(set...)
|
%define %swig_set_methods(set...)
|
||||||
%swig_sequence_iterator(swig::make_output_iterator,set);
|
%swig_sequence_iterator(set);
|
||||||
%swig_container_methods(set);
|
%swig_container_methods(set);
|
||||||
|
|
||||||
%extend {
|
%extend {
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
%define %swig_unordered_map_common(Map...)
|
%define %swig_unordered_map_common(Map...)
|
||||||
%swig_sequence_iterator(swig::make_output_forward_iterator,Map);
|
%swig_sequence_forward_iterator(Map);
|
||||||
%swig_container_methods(Map)
|
%swig_container_methods(Map)
|
||||||
|
|
||||||
%extend {
|
%extend {
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%define %swig_unordered_set_methods(unordered_set...)
|
%define %swig_unordered_set_methods(unordered_set...)
|
||||||
%swig_sequence_iterator(swig::make_output_forward_iterator,unordered_set);
|
%swig_sequence_forward_iterator(unordered_set);
|
||||||
%swig_container_methods(unordered_set);
|
%swig_container_methods(unordered_set);
|
||||||
|
|
||||||
%extend {
|
%extend {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue