func (MatchProtocol) CELLibrary(_ caddy.Context) (cel.Library, error) {
	return CELMatcherImpl(
		"protocol",
		"protocol_request_string",
		[]*exprpb.Type{decls.String},
		func(data ref.Val) (RequestMatcher, error) {
			protocolStr, ok := data.(types.String)
			if !ok {
				return nil, errors.New("protocol argument was not a string")
			}
			return MatchProtocol(strings.ToLower(string(protocolStr))), nil
		},
	)
}
// CELLibrary produces options that expose this matcher for use in CEL
// expression matchers.
//
// Example:
//    expression protocol('https')
CELLibrary produces options that expose this matcher for use in CEL
expression matchers.

expression protocol('https')
// CELLibrary produces options that expose this matcher for use in CEL // expression matchers . // // Example : // expression protocol ( ' https ' )
func (MatchProtocol) CELLibrary(_ caddy.Context) (cel.Library, error) {
	return CELMatcherImpl(
		"protocol",
		"protocol_request_string",
		[]*exprpb.Type{decls.String},
		func(data ref.Val) (RequestMatcher, error) {
			protocolStr, ok := data.(types.String)
			if !ok {
				return nil, errors.New("protocol argument was not a string")
			}
			return MatchProtocol(strings.ToLower(string(protocolStr))), nil
		},
	)
}
func ( MatchProtocol ) CELLibrary ( _ caddy . Context ) ( cel . Library , error ) { return CELMatcherImpl ( " " , " " , [ ] * exprpb . Type { decls . String } , func ( data ref . Val ) ( RequestMatcher , error ) { protocolStr , ok := data . ( types . String ) if ! ok { return nil , errors . New ( " " ) } return MatchProtocol ( strings . ToLower ( string ( protocolStr ) ) ) , nil } , ) }
CELLibrary produces options that expose this matcher for use in CEL
expression matchers.
CELLibrary produces options that expose this matcher for use in CEL expression matchers .