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

bevy_reflect: Function Overloading (Generic & Variadic Functions) #15074

Open
wants to merge 21 commits into
base: main
Choose a base branch
from

Commits on Sep 7, 2024

  1. Added FunctionInfoType

    This will be a foundational piece to enabling overloaded functions.
    MrGVSV committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    87a098c View commit details
    Browse the repository at this point in the history
  2. Added Arg::is

    Allows for manually defining basic generic function reflection
    MrGVSV committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    9274bea View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5713eb4 View commit details
    Browse the repository at this point in the history
  4. Made arguments require Reflect rather than PartialReflect

    Function reflection doesn't really support dynamic types currently
    so it makes more sense to start stricter with Reflect.
    
    This will make it easier to ensure all arguments have valid types
    for generic function reflection.
    MrGVSV committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    945ecba View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    8231d13 View commit details
    Browse the repository at this point in the history
  6. Simplified FunctionMap

    MrGVSV committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    a755066 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a37055f View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    45d36fc View commit details
    Browse the repository at this point in the history
  9. Optimized FunctionMap

    MrGVSV committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    182d7a5 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    998269f View commit details
    Browse the repository at this point in the history
  11. Switched to NoOpHash in FunctionMap

    Since ArgumentSignature is just a wrapper around Box<[Type]>,
    it should already contain a "high-quality hash"
    MrGVSV committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    1a5b9a1 View commit details
    Browse the repository at this point in the history
  12. Added is_overloaded method

    MrGVSV committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    10a4447 View commit details
    Browse the repository at this point in the history
  13. Added arg_count method

    MrGVSV committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    1074f29 View commit details
    Browse the repository at this point in the history
  14. Improved docs for FunctionMap

    MrGVSV committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    627d6b5 View commit details
    Browse the repository at this point in the history
  15. Reverted usage of NoOpHash

    Turns out that NoOpHash works by only using the last u64 hash,
    making collisions very likely when used with ArgumentSignature
    MrGVSV committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    3eea6de View commit details
    Browse the repository at this point in the history
  16. Added a few more FunctionMap optimizations

    Mainly usage of HashMap::insert_unique_unchecked
    MrGVSV committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    38afcdc View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    66b88e5 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    b0f01d8 View commit details
    Browse the repository at this point in the history
  19. Added PrettyPrintFunctionInfo

    Used to help reduce code duplication for overloaded functions
    and to give users the option to pretty-print FunctionInfo
    MrGVSV committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    cf35a6e View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    70d497f View commit details
    Browse the repository at this point in the history
  21. Changed benchmark names

    Added the `simple_` qualifier
    MrGVSV committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    0ecda65 View commit details
    Browse the repository at this point in the history