core :: Text :: byte_length
self
assert "12345".byte_length == 5
assert "あいうえお".byte_length == 15
# 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
redef var byte_length = 0
lib/core/text/abstract_text.nit:1429,2--26
# 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
redef fun byte_length do
sys.byte_length_call.inc "FlatBuffer"
return super
end
lib/text_stat/text_stat.nit:241,2--244,4
redef var byte_length is noinit
lib/core/text/ropes.nit:79,2--32
redef fun byte_length do
sys.byte_length_call.inc "Concat"
return super
end
lib/text_stat/text_stat.nit:138,2--141,4
redef fun byte_length do
sys.byte_length_call.inc "FlatString"
return super
end
lib/text_stat/text_stat.nit:284,2--287,4