python/pyfury/includes/libabsl.pxd (69 lines of code) (raw):

from libcpp.utility cimport pair # Copied from https://github.com/messense/cython-abseil-sample/blob/master/absl.pxd cdef extern from "absl/container/flat_hash_map.h" namespace "absl" nogil: cdef cppclass flat_hash_map[T, U]: ctypedef T key_type ctypedef U mapped_type ctypedef pair[const T, U] value_type cppclass iterator: pair[T, U]& operator*() iterator operator++() iterator operator--() bint operator==(iterator) bint operator!=(iterator) cppclass reverse_iterator: pair[T, U]& operator*() iterator operator++() iterator operator--() bint operator==(reverse_iterator) bint operator!=(reverse_iterator) cppclass const_iterator(iterator): pass cppclass const_reverse_iterator(reverse_iterator): pass flat_hash_map() except + flat_hash_map(flat_hash_map&) except + # flat_hash_map(key_compare&) U& operator[](T&) # flat_hash_map& operator=(flat_hash_map&) bint operator==(flat_hash_map&, flat_hash_map&) bint operator!=(flat_hash_map&, flat_hash_map&) bint operator<(flat_hash_map&, flat_hash_map&) bint operator>(flat_hash_map&, flat_hash_map&) bint operator<=(flat_hash_map&, flat_hash_map&) bint operator>=(flat_hash_map&, flat_hash_map&) U& at(const T&) const U& const_at "at"(const T&) iterator begin() const_iterator const_begin "begin"() void clear() size_t count(T&) bint empty() iterator end() const_iterator const_end "end"() pair[iterator, iterator] equal_range(T&) pair[const_iterator, const_iterator] const_equal_range "equal_range"(const T&) void erase(iterator) void erase(iterator, iterator) size_t erase(T&) iterator find(T&) const_iterator const_find "find"(T&) pair[iterator, bint] insert(pair[T, U]) # XXX pair[T,U]& iterator insert(iterator, pair[T, U]) # XXX pair[T,U]& iterator insert(iterator, iterator) # key_compare key_comp() iterator lower_bound(T&) const_iterator const_lower_bound "lower_bound"(T&) size_t max_size() reverse_iterator rbegin() const_reverse_iterator const_rbegin "rbegin"() reverse_iterator rend() const_reverse_iterator const_rend "rend"() size_t size() void swap(flat_hash_map&) iterator upper_bound(T&) const_iterator const_upper_bound "upper_bound"(T&) # value_compare value_comp() void max_load_factor(float) float max_load_factor() void rehash(size_t) void reserve(size_t) size_t bucket_count() size_t max_bucket_count() size_t bucket_size(size_t) size_t bucket(const T&)