Open
Description
The current implementation of Hub.Config
can't be marked as Sendable
, which restricts all types referencing Config from being passed across concurrency boundaries. This limitation prevents efficient use of Tokenizer
in structured concurrency contexts, such as Task {}
, within actors or SwiftUI
. Therefore causes friction while adopting Swift 6, or some iOS features like AppIntent
which requires passing concurrency boundaries.
Observations
Config
internally usesDictionary
that in combination withNSString
is inherently nonSendable
.- Unlike
NSString
,String
enforces unwanted unicode canonical equivalence.