diff options
author | David Shah <davey1576@gmail.com> | 2018-07-04 14:44:45 +0200 |
---|---|---|
committer | David Shah <davey1576@gmail.com> | 2018-07-04 14:55:24 +0200 |
commit | 46db5001234ff42cd5b94407c2122bbf0b2994df (patch) | |
tree | 51052f7886134407c8db44dd6ab596ff7e63b663 /common/pycontainers.h | |
parent | 79e91368f901343c7f0c88d5841ae231432a4c0b (diff) | |
download | nextpnr-46db5001234ff42cd5b94407c2122bbf0b2994df.tar.gz nextpnr-46db5001234ff42cd5b94407c2122bbf0b2994df.tar.bz2 nextpnr-46db5001234ff42cd5b94407c2122bbf0b2994df.zip |
python: More design-related bindings, dump_design.py working again
Signed-off-by: David Shah <davey1576@gmail.com>
Diffstat (limited to 'common/pycontainers.h')
-rw-r--r-- | common/pycontainers.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/common/pycontainers.h b/common/pycontainers.h index c8d2257b..260a9dd6 100644 --- a/common/pycontainers.h +++ b/common/pycontainers.h @@ -276,6 +276,11 @@ template <typename T, typename value_conv> struct map_wrapper x.base[PythonConversion::string_converter<K>().from_str(x.ctx, i)] = v; } + static size_t len(wrapped_map &x) + { + return x.base.size(); + } + static void del(T const &x, std::string const &i) { K k = PythonConversion::string_converter<K>().from_str(x.ctx, i); @@ -293,7 +298,7 @@ template <typename T, typename value_conv> struct map_wrapper typename rw::iter_wrap().wrap(iter_name); class_<wrapped_map>(map_name, no_init) .def("__iter__", rw::iter) - .def("__len__", &T::size) + .def("__len__", len) .def("__getitem__", get) .def("__setitem__", set, with_custodian_and_ward<1, 2>()); } @@ -394,6 +399,11 @@ template <typename T> struct map_wrapper_uptr x.base[PythonConversion::string_converter<K>().from_str(x.ctx, i)] = typename T::mapped_type(v); } + static size_t len(wrapped_map &x) + { + return x.base.size(); + } + static void del(T const &x, std::string const &i) { K k = PythonConversion::string_converter<K>().from_str(x.ctx, i); @@ -411,7 +421,7 @@ template <typename T> struct map_wrapper_uptr typename rw::iter_wrap().wrap(iter_name); class_<wrapped_map>(map_name, no_init) .def("__iter__", rw::iter) - .def("__len__", &T::size) + .def("__len__", len) .def("__getitem__", get) .def("__setitem__", set, with_custodian_and_ward<1, 2>()); } |