message: Optimize publish for empty headers HashMap
diff: @@ -341,11 +341,14 @@ impl Connection {
  respond,
  headers,
  } => {
  - if headers.is_some() {
  + match headers.as_ref() {
  + Some(headers) if !headers.is_empty() => {
  self.stream.write_all(b"HPUB ").await?;
  - } else {
  + }
  + _ => {
  self.stream.write_all(b"PUB ").await?;
  }
  + }
  self.stream.write_all(subject.as_bytes()).await?;
  self.stream.write_all(b" ").await?;
  @@ -355,7 +358,8 @@ impl Connection {
  self.stream.write_all(b" ").await?;
  }
  - if let Some(headers) = headers {
  + match headers {
  + Some(headers) if !headers.is_empty() => {
  let headers = headers.to_bytes();
  let mut header_len_buf = itoa::Buffer::new();
  @@ -376,13 +380,15 @@ impl Connection {
  self.stream.write_all(b"\r\n").await?;
  self.stream.write_all(&headers).await?;
  - } else {
  + }
  + _ => {
  let mut len_buf = itoa::Buffer::new();
  self.stream
  .write_all(len_buf.format(payload.len()).as_bytes())
  .await?;
  self.stream.write_all(b"\r\n").await?;
  }
  + }
  self.stream.write_all(&payload).await?;
  self.stream.write_all(b"\r\n").await?;
  