Various utility classes and methods for Ceylon. These are intended to all be written in native Ceylon, with no dependency on JDK-specific modules.
Format Integers as either hex or bits Strings with padding and underscores to make them more readable.
print(formatAndPadAsBits(30));
> 0001_1110
print(formatAndPadAsHex(500000);
> 0007_a120
Functions to return immutable collections succinctly:
List<String> anImmutableList = immutableList{"one","two","three"}; Set<Integer> anImmutableSet = immutableSet{1,2,3}; Map<String,Integer> anImmutableMap = immutableMap{"one"->1,"two"->2,"three"->3};
Helper functions for equals() and hash:
hashes(myObject.myInteger,myObject.myString);
> 1312847
equalsWith(myObject.myInteger,otherObject.myInteger);
> true or false
equalsWithMultiple([myObject.myInteger,otherObject.myInteger], [myObject.myString,otherObject.myString]);
> true or false
Functions to translate Integers into Sequences of Bytes
integerToBytes(941226);
> [0, 0, 0, 0, 0, $1110.byte, $0101_1100.byte, $1010_1010.byte]
integerToBytesNoZeros(941226);
> [$1110.byte, $0101_1100.byte, $1010_1010.byte]
Convenience function: helpString() to help output class string attributes.
helpString("Thing", "Name"->"FirstThing", "Number"->1, "Optional"->null);
> “Thing:{Name=FirstThing,Number=1,Optional=null}“
Wrapper types for commonly used types to add unique typing. Example, in contexts where several Integer variables are used for different concepts such as AccountNumber, ReferenceNumber, etc
Examples:
class AccountNumber(Integer baseValue) extends TypedInteger(baseValue) {} class ReferenceNumber(Integer baseValue) extends TypedInteger(baseValue) {} value accountNum1 = AccountNumber("1"); value accountNum2 = AccountNumber("2"); value refNum1 = ReferenceNumber("1"); value refNum2 = ReferenceNumber("2"); assertFalse(accountNum1.equals(accountNum2); assertFalse(accountNum1.equals(referenceNum1); assertFalse(referenceNum2.equals(accountNum2);
Packages | |
herd.chayote.bytes | Contains functions to translate Integers into Sequences of Bytes integerToBytes(941226) > [0, 0, 0, 0, 0,… |
herd.chayote.collections | Contains functions to return immutable collections succinctly: List<String> anImmutableList =… |
herd.chayote.format | Contains functions to format Integers as either hex or bits Strings with padding and underscores to make them more… |
herd.chayote.integer | Support left and right bit rotation on |
herd.chayote.object_helpers | Contains helper functions for equals() and hash: hashes(myObject.myInteger,myObject.myString); > 1312847… |
herd.chayote.value_classes | Wrapper types for commonly used types to add unique typing. |
Dependencies | ||
ceylon.collection | 1.1.0 |