#include b_status b_iterator_cleanup(struct b_iterator *it) { if (it->it_ops && it->it_ops->it_close) { return it->it_ops->it_close(it); } return B_SUCCESS; } bool b_iterator_next(struct b_iterator *it) { if (it->it_ops && it->it_ops->it_next) { return it->it_ops->it_next(it); } return false; } b_status b_iterator_erase(struct b_iterator *it) { if (it->it_ops && it->it_ops->it_erase) { return it->it_ops->it_erase(it); } return B_ERR_NOT_SUPPORTED; } bool b_iterator_is_valid(const struct b_iterator *it) { if (it->it_ops && it->it_ops->it_is_valid) { return it->it_ops->it_is_valid(it); } return false; }