code: def set_preprocessor(self, message_type, preprocessor, executor):
          '''
          Sets PREPROCESSOR to run on MESSAGE_TYPE in EXECUTOR.
  
          PREPROCESSOR: fn(message_content: bytes) -> PreprocessorResult
          '''
          self._preprocessors[message_type] = \
              _PreprocessorManager(
                  executor=executor,
                  preprocessor=preprocessorf set_preprocessor(self, message_type, preprocessor, executor):
          '''
          Sets PREPROCESSOR to run on MESSAGE_TYPE in EXECUTOR.
  
          PREPROCESSOR: fn(message_content: bytes) -> PreprocessorResult
          '''
          self._preprocessors[message_type] = \
              _PreprocessorManager(
                  executor=executor,
                  preprocessor=preprocessor)
docs: Sets PREPROCESSOR to run on MESSAGE_TYPE in EXECUTOR.
  
          PREPROCESSOR: fn(message_content: bytes) -> PreprocessorResult