CAD97/fmod-rs

Nit: `System::set_3d_rolloff_callback` is wrapped differently than all other callback APIs

Opened this issue · 0 comments

CAD97 commented

Most callback APIs define a trait ThisThingCallback and take that as a turbofish, but Rolloff3dCallback is instead a type alias to extern "system" fn and passed as an optional function parameter.

Either set_3d_rolloff_callback should adapt to the style used everywhere else, or everywhere else should specify the callback as a function argument. Switching from enum CallbackImpl {} to struct CallbackImpl; makes this reasonable, but I still have a slight preference for the version which is clearly just type-level, since the callback functionality needs to be sent to FMOD as static function pointers (i.e. no &self).