Merge: curl: basic Unix domain socket support
[nit.git] / lib / sha1.nit
index e00745c..a80e9f2 100644 (file)
@@ -217,8 +217,8 @@ in "C Header" `{
        }
 `}
 
-redef class NativeString
-       private fun sha1_intern(len: Int): NativeString `{
+redef class CString
+       private fun sha1_intern(len: Int): CString `{
                sha1nfo s;
 
                sha1_init(&s);
@@ -235,11 +235,11 @@ redef class NativeString
        `}
 end
 
-redef class String
+redef class Text
 
        # Computes the SHA1 of the receiver
        #
-       # Returns a digest of 20 bytes as a NativeString,
+       # Returns a digest of 20 bytes as a CString,
        # note that all the characters are not necessarily ASCII.
        # If you want the hex string version of the digest, use
        # sha1_hexdigest.
@@ -257,4 +257,14 @@ redef class String
        #
        #     assert "The quick brown fox jumps over the lazy dog".sha1_hexdigest == "2FD4E1C67A2D28FCED849EE1BB76E7391B93EB12"
        fun sha1_hexdigest: String do return sha1.hexdigest
+
+       # Is `self` a SHA-1 hexdigest?
+       #
+       #~~~nit
+       # assert "2FD4E1C67A2D28FCED849EE1BB76E7391B93EB12".is_sha1_digest
+       # assert not "Not a digest".is_sha1_digest
+       # assert not "2FD4E1C67A2D28FCED849EE1B76E7391B93EB12".is_sha1_digest
+       # assert not "2FD4E1C67A2D28FCED849EE1UB76E7391B93EB12".is_sha1_digest
+       #~~~
+       fun is_sha1_digest: Bool do return length == 40 and is_hex
 end