Custom data type for representing basketball player numbers with additional validation rules.
init?(number: String) - initializes correctly with a positive number comprised of one or two digits.
Allowed numbers: 00, 01...09, 0...99.
You can use init?(number: String, validationRules: Set<JerseyNumberValidationRule>) to restrict valid numbers.
.only0to5 - returns nil if number contains digits in range of 6...9 in any place
.doubleZeroNotAllowed - returns nil if number is "00"
.noLeadingZeros - returns nil for values like 01...09
copy(usingValidationRules rules: Set<JerseyNumberValidationRule>) -> BasketballJerseyNumber? - makes a copy by following all provided rules.
follows(rules: Set<JerseyNumberValidationRule>) -> Bool - verifies the number against a set of provided rules.
Conforms to Hashable and CustomStringConvertible.