On a system implementing many
CanardRxSubscription instances you will end up with a big list to iterate trough when receiving a frame from
canardRxAccept yielding a processing time of O(n).
Pavel made a proposal to change
canardRxAccept() by adding a pointer to the associated
CanardRxSession instance for OOP interfaces which might help. Although I’m not sure how to map a callback handler in O(1) to the returned
CanardRxSession also include a user pointer then aswell?
Another solution would make an optimized data structure for mapping PortID efficiently to pointers/callbacks. But that feels more like re-inventing the wheel.