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