Skip to content

Commit f97fa8e

Browse files
author
Frankie Robertson
committed
Add iterator to Responses
1 parent f066165 commit f97fa8e

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/Responses.jl

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,25 @@ end
5050

5151
BareResponses(rt::ResponseType) = BareResponses(rt, Int[], concrete_response_type(rt)[])
5252

53+
function _iter_helper(gen, result)
54+
if result === nothing
55+
return nothing
56+
end
57+
(item, gen_state) = result
58+
return (item, (gen, gen_state))
59+
end
60+
61+
function Base.iterate(responses::BareResponses)
62+
gen = (Response(responses.rt, index, value) for (index, value) in zip(
63+
responses.indices, responses.values))
64+
return _iter_helper(gen, iterate(gen))
65+
end
66+
67+
function Base.iterate(::BareResponses, gen_gen_state)
68+
(gen, gen_state) = gen_gen_state
69+
return _iter_helper(gen, iterate(gen, gen_state))
70+
end
71+
5372
struct AbilityLikelihood{ItemBankT <: AbstractItemBank, BareResponsesT <: BareResponses}
5473
item_bank::ItemBankT
5574
responses::BareResponsesT

0 commit comments

Comments
 (0)