19 if (_python_type !=
nullptr || _parent_classes.empty()) {
23 return r_get_python_type();
30INLINE TypeRegistryNode::Inherit::
40INLINE TypeRegistryNode::Inherit::
42 TypeRegistryNode::SubtreeMaskType bits) {
43 assert(bit_count < (
int)(
sizeof(SubtreeMaskType) * 8));
47 _mask = ((SubtreeMaskType)1 << bit_count) - 1;
50 assert((bits & ~_mask) == 0);
57INLINE TypeRegistryNode::Inherit::
58Inherit(
const TypeRegistryNode::Inherit ©) :
68INLINE
void TypeRegistryNode::Inherit::
69operator = (
const TypeRegistryNode::Inherit ©) {
78INLINE
bool TypeRegistryNode::Inherit::
79operator < (
const Inherit &other)
const {
80 return _top < other._top;
88INLINE
bool TypeRegistryNode::Inherit::
89is_derived_from(
const TypeRegistryNode::Inherit &child,
90 const TypeRegistryNode::Inherit &base) {
91 assert(child._top == base._top);
96 return ((child._mask & base._mask) == base._mask &&
97 (child._bits & base._mask) == base._bits);
This is a single entry in the TypeRegistry.
PyObject * get_python_type() const
Returns the Python type object associated with this node.