PageRenderTime 254ms CodeModel.GetById 34ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Lib/ruby/std_vector.i

#
Swig | 52 lines | 36 code | 13 blank | 3 comment | 0 complexity | 56f3416d0f06186fd53462720d0c642d MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. /*
  2. Vectors
  3. */
  4. %fragment("StdVectorTraits","header",fragment="StdSequenceTraits")
  5. %{
  6. namespace swig {
  7. template <class T>
  8. struct traits_asptr<std::vector<T> > {
  9. static int asptr(VALUE obj, std::vector<T> **vec) {
  10. return traits_asptr_stdseq<std::vector<T> >::asptr(obj, vec);
  11. }
  12. };
  13. template <class T>
  14. struct traits_from<std::vector<T> > {
  15. static VALUE from(const std::vector<T>& vec) {
  16. return traits_from_stdseq<std::vector<T> >::from(vec);
  17. }
  18. };
  19. }
  20. %}
  21. %define %swig_vector_methods(Type...)
  22. %swig_sequence_methods(Type)
  23. %swig_sequence_front_inserters(Type);
  24. %enddef
  25. %define %swig_vector_methods_val(Type...)
  26. %swig_sequence_methods_val(Type);
  27. %swig_sequence_front_inserters(Type);
  28. %enddef
  29. %mixin std::vector "Enumerable";
  30. %ignore std::vector::push_back;
  31. %ignore std::vector::pop_back;
  32. %rename("delete") std::vector::__delete__;
  33. %rename("reject!") std::vector::reject_bang;
  34. %rename("map!") std::vector::map_bang;
  35. %rename("empty?") std::vector::empty;
  36. %rename("include?" ) std::vector::__contains__ const;
  37. %rename("has_key?" ) std::vector::has_key const;
  38. %alias std::vector::push "<<";
  39. %include <std/std_vector.i>