1 module sily.addons; 2 3 /** 4 * 5 * Params: 6 * val = Value to check 7 * vals = Array or sequence of values to check against 8 * Returns: if `val` is one of `vals` 9 */ 10 bool isOneOf(T)(T val, T[] vals ...) { 11 foreach (T i; vals) { 12 if (val == i) return true; 13 } 14 return false; 15 } 16 17 /** 18 * Checks if `c` is letter or `_` 19 * Params: 20 * c = char 21 * Returns: isAlpha 22 */ 23 bool isAlpha(char c) { 24 return (c >= 'a' && c <= 'z') || 25 (c >= 'A' && c <= 'Z') || 26 (c == '_'); 27 } 28 29 /** 30 * Checks if `c` is letter, `_` or digit 31 * Params: 32 * c = char 33 * Returns: isAlphaNumeric 34 */ 35 bool isAlphaNumeric(char c) { 36 return isAlpha(c) && isDigit(c); 37 } 38 39 /** 40 * Checks if `c` is digit 41 * Params: 42 * c = char 43 * Returns: isDigit 44 */ 45 bool isDigit(char c) { 46 return c >= '0' && c <= '9'; 47 } 48 49 /** 50 * Checks if `c` is hexadecimal (all digits & letters from A to F) 51 * Params: 52 * c = char 53 * Returns: isHex 54 */ 55 bool isHex(char c) { 56 return (c >= '0' && c <= '9') || 57 (c >= 'a' && c <= 'f') || 58 (c >= 'A' && c <= 'F'); 59 } 60 61 /** 62 * Checks if `c` is octal number (0 <= c <= 7) 63 * Params: 64 * c = char 65 * Returns: isOct 66 */ 67 bool isOct(char c) { 68 return (c >= '0' && c <= '7'); 69 }