From eb3c0e413fce2195817ecb6badba054cdebbac82 Mon Sep 17 00:00:00 2001 From: Lucas Bajolet Date: Tue, 20 Oct 2015 11:37:47 -0400 Subject: [PATCH] lib/core: Added new `hexdigest` service on `Text` Signed-off-by: Lucas Bajolet --- lib/core/bytes.nit | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/core/bytes.nit b/lib/core/bytes.nit index 227759a..94d3d27 100644 --- a/lib/core/bytes.nit +++ b/lib/core/bytes.nit @@ -289,6 +289,20 @@ redef class Text end return ret end + + # Gets the hexdigest of the bytes of `self` + # + # assert "<STRING/&rt;".hexdigest == "266C743B535452494E47262334373B2672743B" + fun hexdigest: String do + var ln = bytelen + var outns = new NativeString(ln * 2) + var oi = 0 + for i in [0 .. ln[ do + bytes[i].add_digest_at(outns, oi) + oi += 2 + end + return new FlatString.with_infos(outns, ln * 2, 0, ln * 2 - 1) + end end redef class FlatText -- 1.7.9.5