public static async ValueTask <Task> PublishAsync(this IMqtt3Client client, IActivityMonitor m, string topic, QualityOfService qos, bool retain,
                                                   Func <int> getPayloadSize, PayloadWriterDelegate payloadWriter) //Async required to convert wrapped Task<object> to Task.
 => await client.SendPacket <object>(m, new BasicOutgoingApplicationMessage( topic, qos, retain, getPayloadSize, payloadWriter ));
 public static async ValueTask <Task> PublishAsync(this IMqtt3Client client, IActivityMonitor?m, string topic, QualityOfService qos, bool retain, ReadOnlyMemory <byte> payload)
 => await client.SendPacket <object>(m, new SmallOutgoingApplicationMessage( topic, qos, retain, payload ));