Implement tree-like structure for links notation instead of IList<TLinkAddress> #487
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.
Summary
This pull request implements a comprehensive solution for issue #132 by introducing a tree-like representation for links that provides a more hierarchical and flexible approach compared to the traditional flat
IList<TLinkAddress>structure.Key Changes
ILinkTree<TLinkAddress>interface with tree-like navigation methodsLinkTree<TLinkAddress>struct with full tree functionalityLink<TLinkAddress>struct to implementILinkTreeinterfaceILinksExtensionsFeatures
GetChild,GetSourceAsTree,GetTargetAsTreeLink,LinkTree, and arraysSingleOrDefaultTree,AllTrees,FormatTree, etc.)Architecture
Usage Examples
Backward Compatibility
All existing code continues to work without modification:
IList<TLinkAddress>methods still function as beforeTesting
/experiments/TreeStructureDemo.csTest Plan
🤖 Generated with Claude Code
Resolves #132