public static ISubscription Subscribe(this NatsClient nats, string subject, string queueGroup, Func <MsgOperation, Task> handler) => nats.Subscribe(subject, queueGroup, new TaskMessageSubscription(handler));
public static ISubscription Subscribe(this NatsClient nats, string subject, Func <MsgOperation, ValueTask> handler) => nats.Subscribe(subject, new ValueTaskMessageSubscription(handler));
public static ISubscription Subscribe(this NatsClient nats, string subject, string queueGroup, Action <MsgOperation> handler) => nats.Subscribe(subject, queueGroup, new SyncMessageSubscription(handler));
public static ISubscription Subscribe(this NatsClient nats, string subject, IMessageSubscription handler) => nats.Subscribe(subject, default, handler);