docs: def on_topic(self, topic):
          # type: (str) -> Callable
          """Decorator.
  
          Decorator to add a callback function that is called when a certain
          topic has been published. The callback function is expected to have the
          following form: `handle_topic(client, userdata, message)`
  
          :parameter topic: a string specifying the subscription topic to
              subscribe to
  
          The topic still needs to be subscribed via mqtt.subscribe() before the
          callback function can be used to handle a certain topic. This way it is
          possible to subscribe and unsubscribe during runtime.
  
          **Example usage:**::
  
              app = Flask(__name__)
              mqtt = Mqtt(app)
              mqtt.subscribe('home/mytopic')
  
              @mqtt.on_topic('home/mytopic')
              def handle_mytopic(client, userdata, message):
                  print('Received message on topic {}: {}'
                        .format(message.topic, message.payload.decode()))
          """
          def decorator(handler):
              # type: (Callable[[str], None]) -> Callable[[str], None]
              self.client.message_callback_add(topic, handler)
              return handler
  
          return decorator