Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data Structures: Delegates -> struct Generic Parameters #37

Open
10 of 11 tasks
ZacharyPatten opened this issue Nov 10, 2019 · 0 comments
Open
10 of 11 tasks

Data Structures: Delegates -> struct Generic Parameters #37

ZacharyPatten opened this issue Nov 10, 2019 · 0 comments
Assignees
Labels
Enhancement issues that suggest potential improvements

Comments

@ZacharyPatten
Copy link
Owner

ZacharyPatten commented Nov 10, 2019

Describe the enhancement
The data structures all need to be modified to allow struct generic parameters (where struct, IAction<A>, where struct, IFunc<A, B>) instead of delegates (Action<A>, Func<A, B>).

Purpose of enhancement
This is a massive performance boost because struct generic parameters can be inlined by the JIT but delegates currently are not. Delegates will still be supported via ActionRuntime<A> and FuncRuntime<A, B> if the user prefers clean code over performance.

Data Structures

  • List
  • Stack
  • Queue
  • Heap
  • AVL Tree
  • Red Black Tree
  • Set
  • Map
  • Omnitree
  • GraphMap
  • GraphWeightedMap
@ZacharyPatten ZacharyPatten added the Enhancement issues that suggest potential improvements label Nov 10, 2019
@ZacharyPatten ZacharyPatten added this to the First Release milestone Nov 10, 2019
@ZacharyPatten ZacharyPatten self-assigned this Nov 10, 2019
ZacharyPatten added a commit that referenced this issue Mar 1, 2020
ZacharyPatten added a commit that referenced this issue Aug 23, 2020
@ZacharyPatten ZacharyPatten changed the title Compile Time Delegates For Data Structures Data Structures: Delegates -> struct Generic Parameters Jun 4, 2021
@ZacharyPatten ZacharyPatten removed this from the First Release milestone Jun 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement issues that suggest potential improvements
Projects
None yet
Development

No branches or pull requests

1 participant