Function writeMessageVecUnflushed [src]

Prototype

pub fn writeMessageVecUnflushed(ws: *WebSocket, data: [][]const u8, op: Opcode) Writer.Error!void

Parameters

ws: *WebSocketdata: [][]const u8op: Opcode

Source

pub fn writeMessageVecUnflushed(ws: *WebSocket, data: [][]const u8, op: Opcode) Writer.Error!void { const total_len = l: { var total_len: u64 = 0; for (data) |iovec| total_len += iovec.len; break :l total_len; }; const out = ws.output; try out.writeByte(@bitCast(@as(Header0, .{ .opcode = op, .fin = true, }))); switch (total_len) { 0...125 => try out.writeByte(@bitCast(@as(Header1, .{ .payload_len = @enumFromInt(total_len), .mask = false, }))), 126...0xffff => { try out.writeByte(@bitCast(@as(Header1, .{ .payload_len = .len16, .mask = false, }))); try out.writeInt(u16, @intCast(total_len), .big); }, else => { try out.writeByte(@bitCast(@as(Header1, .{ .payload_len = .len64, .mask = false, }))); try out.writeInt(u64, total_len, .big); }, } try out.writeVecAll(data); }