Rule()
Rules are main part of checkpoint. Rule.canPass function can be invoked directly or used by child classes. When new rule is needed, this class can be extended with the desired input and output type.
INPUT
- value which will be validated
OUTPUT
- result of Rule.isValid.
This can be Boolean or any other desired return value (i.e. Observable).