@@ -17,23 +17,32 @@ compute!(adapter::NoComputeStep) = adapter
1717NoComputeStep (adapter:: NoComputeStep ) = adapter
1818
1919"""
20- struct EachRegion{RegionIterator } <: AbstractNetworkIterator
20+ struct EachRegion{SweepIterator } <: AbstractNetworkIterator
2121
22- Wapper adapter that returns a tuple ( region, kwargs) at each step rather than the iterator
23- itself .
22+ Adapter that flattens the each region iterator in the parent sweep iterator into a single
23+ iterator, returning `region => kwargs` .
2424"""
25- struct EachRegion{R <: RegionIterator } <: AbstractNetworkIterator
26- parent:: R
25+ struct EachRegion{SI <: SweepIterator } <: AbstractNetworkIterator
26+ parent:: SI
2727end
2828
29- # Essential definitions
30- Base. length (adapter:: EachRegion ) = length (adapter. parent)
31- state (adapter:: EachRegion ) = state (adapter. parent)
32- increment! (adapter:: EachRegion ) = state (adapter. parent)
29+ # In keeping with Julia convention.
30+ eachregion (iter:: SweepIterator ) = EachRegion (iter)
3331
32+ # Essential definitions
33+ function laststep (adapter:: EachRegion )
34+ region_iter = region_iterator (adapter. parent)
35+ return laststep (adapter. parent) && laststep (region_iter)
36+ end
37+ function increment! (adapter:: EachRegion )
38+ region_iter = region_iterator (adapter. parent)
39+ laststep (region_iter) ? increment! (adapter. parent) : increment! (region_iter)
40+ return adapter
41+ end
3442function compute! (adapter:: EachRegion )
35- # Do the usual compute! for RegionIterator
36- compute! (adapter. parent)
37- # But now lets return something useful
38- return current_region_plan (adapter)
43+ region_iter = region_iterator (adapter. parent)
44+ compute! (region_iter)
45+ return current_region_plan (region_iter)
46+ end
47+
3948end
0 commit comments