internal static void Write(INatsStreamWriter writer, ReadOnlySpan <char> subject, ReadOnlySpan <char> replyTo, ReadOnlyMemory <byte> body) { var bodySize = body.Length.ToString().AsSpan(); var preBodySize = 3 + 1 + subject.Length + 1 + (replyTo.IsEmpty ? 0 : replyTo.Length + 1) + bodySize.Length + NatsEncoder.CrlfBytesLen; var preBody = new Span <byte>(new byte[preBodySize]); FillPreBody(preBody, subject, replyTo, bodySize); writer.Write(preBody, false); writer.Write(body.Span, false); writer.Write(NatsEncoder.CrlfBytes, false); }
internal static void Write(INatsStreamWriter writer, ReadOnlySpan <char> subject, ReadOnlySpan <char> subscriptionId, ReadOnlySpan <char> queueGroup) { var trg = new Span <byte>(new byte[3 + 1 + subject.Length + 1 + (queueGroup.IsEmpty ? 0 : queueGroup.Length + 1) + subscriptionId.Length + NatsEncoder.CrlfBytesLen]); Fill(trg, subject, subscriptionId, queueGroup); writer.Write(trg, false); }
internal static void Write(INatsStreamWriter writer, ReadOnlySpan <char> subscriptionId, int?maxMessages = null) { var maxMessagesString = maxMessages.ToString().AsSpan(); var trg = new Span <byte>(new byte[5 + 1 + subscriptionId.Length + (maxMessagesString.IsEmpty ? 0 : maxMessagesString.Length + 1) + NatsEncoder.CrlfBytesLen]); Fill(trg, subscriptionId, maxMessagesString); writer.Write(trg, false); }
internal static void Write(INatsStreamWriter writer) => writer.Write(Bytes.Span, true);