Skip to content

Commit

Permalink
Split map.go into multiple go files
Browse files Browse the repository at this point in the history
This change makes the code easier to read and maintain.

This commit splits map.go into:
- map_data_slab.go
- map_data_slab_decode.go
- map_data_slab_encode.go
- map_element.go
- map_element_decode.go
- map_element_encode.go
- map_elements.go
- map_elements_decode.go
- map_elements_encode.go
- map_elements_hashkey.go
- map_elements_nokey.go
- map_extradata.go
- map_iterator.go
- map_metadata_slab.go
- map_metadata_slab_decode.go
- map_metadata_slab_encode.go
- map_size_consts.go
- map_slab.go

While at it, this commit also groups related functions together.
  • Loading branch information
fxamacker committed Feb 14, 2025
1 parent f7e4135 commit da8e28b
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 da8e28b

Please sign in to comment.