Validate
        Perform value validation and return result

        :param value:           value to check
        :param model:           parent model being validated
        :param context:         object or None, validation context
        :return:                shiftschema.results.Error

def validate(self, value, model=None, context=None):
        """
        Validate
        Perform value validation and return result

        :param value:           value to check
        :param model:           parent model being validated
        :param context:         object or None, validation context
        :return:                shiftschema.results.Error
        """

        if not isinstance(value, Iterable):
            return Error(self.not_iterable)

        try:
            next(iter(value))
        except StopIteration:
            return Error(self.cant_be_empty)

        return Error()