summaryrefslogtreecommitdiff
path: root/share/swig/2.0.11/ruby/std_vector.i
diff options
context:
space:
mode:
Diffstat (limited to 'share/swig/2.0.11/ruby/std_vector.i')
-rw-r--r--share/swig/2.0.11/ruby/std_vector.i52
1 files changed, 52 insertions, 0 deletions
diff --git a/share/swig/2.0.11/ruby/std_vector.i b/share/swig/2.0.11/ruby/std_vector.i
new file mode 100644
index 0000000..67fdcd1
--- /dev/null
+++ b/share/swig/2.0.11/ruby/std_vector.i
@@ -0,0 +1,52 @@
+/*
+ Vectors
+*/
+
+%fragment("StdVectorTraits","header",fragment="StdSequenceTraits")
+%{
+ namespace swig {
+ template <class T>
+ struct traits_asptr<std::vector<T> > {
+ static int asptr(VALUE obj, std::vector<T> **vec) {
+ return traits_asptr_stdseq<std::vector<T> >::asptr(obj, vec);
+ }
+ };
+
+ template <class T>
+ struct traits_from<std::vector<T> > {
+ static VALUE from(const std::vector<T>& vec) {
+ return traits_from_stdseq<std::vector<T> >::from(vec);
+ }
+ };
+ }
+%}
+
+
+
+%define %swig_vector_methods(Type...)
+ %swig_sequence_methods(Type)
+ %swig_sequence_front_inserters(Type);
+%enddef
+
+%define %swig_vector_methods_val(Type...)
+ %swig_sequence_methods_val(Type);
+ %swig_sequence_front_inserters(Type);
+%enddef
+
+
+%mixin std::vector "Enumerable";
+%ignore std::vector::push_back;
+%ignore std::vector::pop_back;
+
+
+%rename("delete") std::vector::__delete__;
+%rename("reject!") std::vector::reject_bang;
+%rename("map!") std::vector::map_bang;
+%rename("empty?") std::vector::empty;
+%rename("include?" ) std::vector::__contains__ const;
+%rename("has_key?" ) std::vector::has_key const;
+
+%alias std::vector::push "<<";
+
+%include <std/std_vector.i>
+