code: func ToBytesProducerChan(ch chan *client.ProducerMessage, opts ...interface{}) func(*client.ProducerMessage) {
  
  	timeout, logger := messaging.ParseOpts(opts...)
  
  	return func(msg *client.ProducerMessage) {
  		select {
  		case ch <- msg:
  		case <-time.After(timeout):
  			logger.Warn("Unable to deliver message")
  		}
  	}
  }
docs: // ToBytesProducerChan allows to receive ProducerMessage through channel. This function can be used as an argument for
  // methods publishing using async API.