code: def _get_size(self, node):
          
          if node == BLANK_NODE:
              return 0
  
          node_type = self._get_node_type(node)
  
          if is_key_value_type(node_type):
              value_is_node = node_type == NODE_TYPE_EXTENSION
              if value_is_node:
                  return self._get_size(self._decode_to_node(node[1]))
              else:
                  return 1
          elif node_type == NODE_TYPE_BRANCH:
              sizes = [self._get_size(self._decode_to_node(node[x]))
                       for x in range(16)]
              sizes = sizes + [1 if node[-1] else 0]
              return sum(sizes)
docs: Get counts of (key, value) stored in this and the descendant nodes
  
          :param node: node in form of list, or BLANK_NODE