Number of bytes in self

assert "12345".byte_length == 5
assert "あいうえお".byte_length == 15

Property definitions

core $ Text :: byte_length
	# Number of bytes in `self`
	#
	# ~~~
	# assert "12345".byte_length == 5
	# assert "あいうえお".byte_length == 15
	# ~~~
	fun byte_length: Int is abstract
lib/core/text/abstract_text.nit:58,2--64,33

core $ FlatText :: byte_length
	redef var byte_length = 0
lib/core/text/abstract_text.nit:1429,2--26

core $ U16String :: byte_length
	# Returns the number of UTF-8 code units (bytes) in `self`
	redef fun byte_length: Int do
		var offset = 0
		var l = 0
		var c = '\0'

		for i in chars do
			c = uchar_string.char_at_offset(offset, code_units)
			var b = c.to_i
			if b > 0xFFFF then offset += 2 else offset +=1

			if b <= 0x7F then
				l += 1
			else if b <= 0x7FF then
				l += 2
			else if b <= 0xD7FF or b > 0x10FFFF then
				l += 0
			else if b <= 0xFFFF then
				l += 3
			else
				l += 4
			end
		end
		return l
	end
lib/core/text/u16_string.nit:114,2--138,4

core $ Concat :: byte_length
	redef var byte_length is noinit
lib/core/text/ropes.nit:79,2--32

text_stat :: text_stat $ Concat :: byte_length
	redef fun byte_length do
		sys.byte_length_call.inc "Concat"
		return super
	end
lib/text_stat/text_stat.nit:138,2--141,4

text_stat :: text_stat $ FlatString :: byte_length
	redef fun byte_length do
		sys.byte_length_call.inc "FlatString"
		return super
	end
lib/text_stat/text_stat.nit:284,2--287,4

text_stat :: text_stat $ FlatBuffer :: byte_length
	redef fun byte_length do
		sys.byte_length_call.inc "FlatBuffer"
		return super
	end
lib/text_stat/text_stat.nit:241,2--244,4