View with custom state, iteration #12
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces significant changes to the
Grid
andView
functionality, including the introduction of a newObserver
interface and the refactoring of theView
structure to support state and type parameters. The most important changes are outlined below:Refactoring and New Functionality:
view.go
: Introduced a newObserver
interface and refactored theView
structure to support state and type parameters. TheNewView
function now creates a view with a given state, and theResize
,MoveTo
,MoveBy
,MoveAt
,Each
,At
,WriteAt
,MergeAt
, andClose
methods have been updated to use the new structure. [1] [2] [3] [4] [5] [6] [7]Observer Handling:
grid.go
: Removed theView
method from theGrid
structure and added theObservers
method to theTile
structure to iterate over all views observing a tile. [1] [2]Utility Functions:
point.go
: Addedpack
andunpackRect
methods to theRect
structure for packing and unpacking rectangle representations.Documentation Update:
README.md
: Updated the documentation to reflect the changes fromView
toNewView
and provided additional information on the type parameters for theNewView
function.