1 /// Partial alternative to std.uni
2 module sily.uni;
3 
4 import std.traits: isSomeChar;
5 
6 /** 
7 Checks if `c` is letter
8 Params:
9   c = char
10 Returns: isAlpha
11 */
12 bool isAlpha(T)(T c) if (isSomeChar!T) {
13     return  (c >= 'a' && c <= 'z') ||
14             (c >= 'A' && c <= 'Z');
15 }
16 
17 /** 
18 Checks if `c` is letter or digit
19 Params:
20   c = char
21 Returns: isAlphaNumeric
22  */
23 bool isAlphaNumeric(T)(T c) if (isSomeChar!T) {
24     return isAlpha(c) || isDigit(c);
25 }
26 
27 /** 
28 Checks if `c` is digit
29 Params:
30   c = char
31 Returns: isDigit
32  */
33 bool isDigit(T)(T c) if (isSomeChar!T) {
34     return c >= '0' && c <= '9';
35 }
36 
37 /** 
38 Checks if `c` is hexadecimal (all digits & letters from A to F)
39 Params:
40   c = char
41 Returns: isHex
42  */
43 bool isHex(T)(T c) if (isSomeChar!T) {
44     return (c >= '0' && c <= '9') || 
45            (c >= 'a' && c <= 'f') || 
46            (c >= 'A' && c <= 'F');
47 }
48 
49 /** 
50 Checks if `c` is octal number (0 <= c <= 7)
51 Params:
52   c = char
53 Returns: isOct
54  */
55 bool isOct(T)(T c) if (isSomeChar!T) {
56     return (c >= '0' && c <= '7');
57 }
58