module WebSocket::Mask

def self.mask(payload, mask)

def self.mask(payload, mask)
  return payload if mask.nil? || payload.empty?
  payload.tap do |result|
    payload.bytesize.times do |i|
      result.setbyte(i, payload.getbyte(i) ^ mask.getbyte(i % 4))
    end
  end
end