• Dominik Charousset's avatar
    Introduce type numbers, refactor matching · 317f90b5
    Dominik Charousset authored
    Instead of offering access to a `uniform_type_info` for each element, messages
    now offer a `match_element` member function. This function is being used by the
    new `try_match` implementation. To increase the performance for match
    operations, type tokens are being used. The tokens are 32-bit integers, simply
    concatenating the type number for each element. The token is not collision-free
    (since all user-defined types are mapped to "0") but outrules many impossible
    matches before `try_run` is called to increase overall performance.
    317f90b5
middleman.cpp 12.4 KB