manolofdez / AsyncBluetooth

A small library that adds concurrency to CoreBluetooth APIs.
MIT License
160 stars 30 forks source link

Please mark Characteristic init as `public` #15

Closed jazzychad closed 1 year ago

jazzychad commented 1 year ago

Hi there! I am really loving using this package for my BLE projects; however I have run into several cases where I would like to manually generate a Characteristic struct in my app code, but the init is internal since it is not marked public in the code.

I have so far hacked around this by cloning the repo and importing the code and manually modifying the code, but I would really like and appreciate if this was marked public in the package itself.

I am curious if there is a reason it is not marked public?

Thanks again for this amazing package!

manolofdez commented 1 year ago

Hi, so glad you've found it useful!! The framework tries to put itself in between the client and CoreBluetooth because it relies on having control over the order of messages received from it. Because the initializer for the Characteristic struct has a CBCharacteristic in the parameter, it got marked internal.

But maybe there's a different solution that would work. Could you describe the scenario in which you need to manually create the Characteristic?