Short answer: For maximum flexibility, you can store the callback as a boxed FnMut object, with the callback setter generic on callback type. The code for this is shown in the last example in the answer. For a more detailed explanation, read on. "Function pointers": callbacks as fn The closest equivalent of the C++ code in the question would be declaring callback as a fn type. fn encapsulates func