builtin: a temporary []byte.str2() (until runes are implemented)

pull/6084/head
Alexander Medvednikov 2020-08-09 04:20:35 +02:00
parent f6a85d5305
commit 94f4dfe85b
1 changed files with 15 additions and 3 deletions

View File

@ -273,10 +273,10 @@ fn u64_to_hex(nn u64, len byte) string {
mut n := nn
mut buf := [256]byte
buf[len] = `\0`
mut i := 0
mut i := 0
for i=len-1; i>=0; i-- {
d := byte(n & 0xF)
x := if d < 10 { d + `0` } else { d + 87 }
x := if d < 10 { d + `0` } else { d + 87 }
buf[i] = x
n = n >> 4
}
@ -294,7 +294,7 @@ fn u64_to_hex_no_leading_zeros(nn u64, len byte) string {
mut i := 0
for i=len-1; i>=0; i-- {
d := byte(n & 0xF)
x := if d < 10 { d + `0` } else { d + 87 }
x := if d < 10 { d + `0` } else { d + 87 }
buf[i] = x
n = n >> 4
if n == 0 {
@ -411,6 +411,18 @@ pub fn (b []byte) clone() []byte {
return res
}
pub fn (b []byte) str2() string {
return bytes2string(b)
}
// TODO copy pasted from builder.v
fn bytes2string(b []byte) string {
mut copy := b.clone()
copy << `\0`
res := tos(copy.data, copy.len-1)
return res
}
// TODO generic
pub fn (a []byte) contains(val byte) bool {