Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Introduce types for forward compiler compatiblity
After Crystal 0.15, compiler will require declare the types used by instance variables on classes. This require changes to the usage of `Radix::Tree` by introducing the type of payload elements it will handle: # Will only support symbols as payload tree = Radix::Tree(Symbol).new tree.add "/", :root # Error: cannot add node with anything other than Symbol tree.add "/meaning-of-life", 42 The changes ensure future compatibility with Crystal and also enforces a more declarative usage of `Radix::Tree`. If necessary, you can combine multiple types to ensure a tree can contain all the wide range of payloads you need: tree = Radix::Tree.new(Foo | Bar | Symbol).new tree.add "/", :root tree.add "/foo", foo_instance This change includes: - Tree, Node and Result has been updated to require types. - Node is capable of have optional payload (from defined type). - Documentation has been updated to reflect this change.
- Loading branch information
1 parent
18bf9b1
commit 9003075
Showing
8 changed files
with
190 additions
and
109 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.