diff mercurial/pure/charencode.py @ 33926:f4433f2713d0

encoding: add function to test if a str consists of ASCII characters Most strings are ASCII. Let's optimize for it. Using uint64_t is slightly faster than uint32_t on 64bit system, but there isn't huge difference.
author Yuya Nishihara <yuya@tcha.org>
date Sun, 23 Apr 2017 12:59:42 +0900
parents b9101467d88b
children 5307cc57f271
line wrap: on
line diff
--- a/mercurial/pure/charencode.py	Sun Apr 23 14:47:52 2017 +0900
+++ b/mercurial/pure/charencode.py	Sun Apr 23 12:59:42 2017 +0900
@@ -13,6 +13,13 @@
     pycompat,
 )
 
+def isasciistr(s):
+    try:
+        s.decode('ascii')
+        return True
+    except UnicodeDecodeError:
+        return False
+
 def asciilower(s):
     '''convert a string to lowercase if ASCII