Skip to content

Commit

Permalink
Merge pull request #509 from onflow/fxamacker/reorganize-map-code
Browse files Browse the repository at this point in the history
Split map.go into smaller files and group related functions
  • Loading branch information
fxamacker authored Feb 14, 2025
2 parents 3ed954a + da8e28b commit fe584bb
Show file tree
Hide file tree
Showing 20 changed files with 6,923 additions and 6,447 deletions.
48 changes: 25 additions & 23 deletions array_iterator.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,29 +163,6 @@ func (i *readOnlyArrayIterator) Next() (Value, error) {
return element, nil
}

type ArrayIterationFunc func(element Value) (resume bool, err error)

func iterateArray(iterator ArrayIterator, fn ArrayIterationFunc) error {
for {
value, err := iterator.Next()
if err != nil {
// Don't need to wrap error as external error because err is already categorized by ArrayIterator.Next().
return err
}
if value == nil {
return nil
}
resume, err := fn(value)
if err != nil {
// Wrap err as external error (if needed) because err is returned by ArrayIterationFunc callback.
return wrapErrorAsExternalErrorIfNeeded(err)
}
if !resume {
return nil
}
}
}

// Array loaded value iterator

type arrayLoadedElementIterator struct {
Expand Down Expand Up @@ -322,3 +299,28 @@ func (i *ArrayLoadedValueIterator) Next() (Value, error) {
// Reach end of loaded value iterator
return nil, nil
}

// Iterate functions

type ArrayIterationFunc func(element Value) (resume bool, err error)

func iterateArray(iterator ArrayIterator, fn ArrayIterationFunc) error {
for {
value, err := iterator.Next()
if err != nil {
// Don't need to wrap error as external error because err is already categorized by ArrayIterator.Next().
return err
}
if value == nil {
return nil
}
resume, err := fn(value)
if err != nil {
// Wrap err as external error (if needed) because err is returned by ArrayIterationFunc callback.
return wrapErrorAsExternalErrorIfNeeded(err)
}
if !resume {
return nil
}
}
}
Loading

0 comments on commit fe584bb

Please sign in to comment.