<?php
 
namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class RulesetClauseType implements Rule
{

    public function passes($attribute, $value)
    {

        $quick_lookup = [ // It is built this way to ensure an O(1) lookup
            'Protocol'                  => true,
            'Source Port'               => true,
            'Destination Port'          => true,
            'Source Port Range'         => true,
            'Destination Port Range'    => true,
            'Source Address'            => true,
            'Destination Address'       => true,
            'Source Network'            => true,
            'Destination Network'       => true
        ];

        return isset($quick_lookup[$value]);

    }
 
    public function message()
    {
        return 'The :attribute must correlate to a known ruleset clause type.';
    }
}