v0.1.26
Fixed
- E0275 recursion overflow with ~290+ typed handlers (#58) — Replaced generic handler wrapper structs (
HandlerFn<F,Fut,R>,HandlerWithArgs,HandlerWithState,HandlerWithStateOnly) with type-erasedErasedHandler/ErasedStreamHandlerin allregister_*methods. This collapses N distinctimpl Handlertrait impls into exactly 1, eliminating the trait-resolution pressure that triggered infinite recursion viaobjc2::Retained'sDerefblanket impl on macOS at ~290+ handlers.
Details
- Zero runtime cost — same
Box::pinon the hot path, one extra closure box at registration time (amortized) - Original generic structs (
HandlerFn,HandlerWithArgs, etc.) retained as public API for backward compatibility with direct construction - No API changes — drop-in upgrade
See CHANGELOG.md for full history.