Write text in str32 format, max of 0xFFFF_FFFF bytes

Require: text.byte_length <= 0xFFFF_FFFF

Property definitions

msgpack :: write $ Writer :: write_msgpack_str32
	# Write `text` in _str32_ format, max of 0xFFFF_FFFF bytes
	#
	# Require: `text.byte_length <= 0xFFFF_FFFF`
	fun write_msgpack_str32(text: Text)
	do
		var len = text.byte_length
		assert len <= 0xFFFF_FFFF

		write_byte 0xDB
		var len_bytes = len.to_bytes
		write_byte len_bytes[0]
		for i in [1..4[ do
			write_byte if len_bytes.length > i then len_bytes[i] else 0
		end
		write text
	end
lib/msgpack/write.nit:214,2--229,4