38 lines
660 B
C
38 lines
660 B
C
|
|
#include <blue/core/iterator.h>
|
||
|
|
|
||
|
|
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;
|
||
|
|
}
|