Skip to content

v0.1.26

Choose a tag to compare

@decebal decebal released this 01 Apr 23:21
· 4 commits to main since this release
f3b2e81

Fixed

  • E0275 recursion overflow with ~290+ typed handlers (#58) — Replaced generic handler wrapper structs (HandlerFn<F,Fut,R>, HandlerWithArgs, HandlerWithState, HandlerWithStateOnly) with type-erased ErasedHandler/ErasedStreamHandler in all register_* methods. This collapses N distinct impl Handler trait impls into exactly 1, eliminating the trait-resolution pressure that triggered infinite recursion via objc2::Retained's Deref blanket impl on macOS at ~290+ handlers.

Details

  • Zero runtime cost — same Box::pin on 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.