# Iterator over the rows of a statement result
class StatementIterator
super Iterator[StatementRow]
# Statement linked to `self`
var statement: Statement
init
do
self.item = new StatementRow(statement)
self.is_ok = statement.native_statement.step.is_row
end
redef var item: StatementRow is noinit
redef var is_ok is noinit
# require: `self.statement.is_open`
redef fun next
do
assert statement_closed: statement.is_open
var err = statement.native_statement.step
if err.is_row then
is_ok = true
else if err.is_done then
# Clean complete
is_ok = false
else
# error
# FIXME do something with the error?
is_ok = false
end
end
redef fun finish do if statement.close_with_iterator then statement.close
end
lib/sqlite3/sqlite3.nit:276,1--312,3