public static void AddSignature(string name, SearchExpressionValidator.Signature signature)
        {
            name = name.ToLowerInvariant();
            string error = "";

            if (!SearchExpressionValidator.ValidateSignature(name, signature, ref error))
            {
                Debug.LogError($"Invalid signature for {name}({signature}) : {error}");
                return;
            }

            if (!evaluatorSignatures.TryGetValue(name.ToLowerInvariant(), out var signatures))
            {
                signatures = new List <SearchExpressionValidator.Signature>();
                evaluatorSignatures.Add(name, signatures);
            }
            evaluatorSignatures[name].Add(signature);
        }
 private SearchExpressionEvaluatorAttribute(string name, SearchExpressionEvaluationHints hints, SearchExpressionValidator.Signature signature)
 {
     this.name      = name;
     this.signature = signature;
     this.hints     = hints;
 }
 private SearchExpressionEvaluatorSignatureOverloadAttribute(SearchExpressionValidator.Signature signature)
 {
     this.signature = signature;
 }