SearchExpressionEvaluationHints
перечисление
Описание
Подсказки, предоставляемые времени выполнения SearchExpression для указания того, как должен выполняться определенный SearchExpressionEvaluatorAttribute.
Вот пример оценщика, не поддерживающего оценку потоков:
[Description("Returns asset paths corresponding to a list of instance ids")]
[SearchExpressionEvaluator("IdsToPaths", SearchExpressionEvaluationHints.ThreadNotSupported, SearchExpressionType.Iterable)]
public static IEnumerable<SearchItem> IdsToPath(SearchExpressionContext c)
{
foreach (var idItem in c.args[0].Execute(c))
{
if (SearchExpression.TryConvertToDouble(idItem, out var idNum))
{
var id = (int)idNum;
var path = AssetDatabase.GetAssetPath(id);
if (!string.IsNullOrEmpty(path))
{
yield return SearchExpression.CreateItem(path, c.ResolveAlias("asset path"));
}
}
}
}
Свойства
| Свойство | Описание |
|---|---|
| ThreadSupported | Указывает, что оценщик поддерживает оценку в рабочем потоке (который не является основным потоком). Это подсказка оценки по умолчанию. |
| ThreadNotSupported | Указывает, что оценщик не поддерживает оценку рабочего потока и должен оцениваться только в главном потоке. Это может быть в случае, если оценщик использует небезопасный поток Unity API (например, AssetDatabase). |
| ExpandSupported | Указывает, что вычислитель может вернуть SearchItem, содержащий SearchExpression с поддержкой развёртывания, например groupBy{}. |
| AlwaysExpand | Оценка Wehn SearchExpression означает, что каждый заимствованный элемент может быть другим SearchExpression, который нуждается в оценке. |
| DoNotValidateSignature | Указывает, что сигнатуру параметров SearchExpression проверять не нужно. Применяется в основном для метапрограммных вычислителей вроде apply{}, куда в качестве параметра можно передать частичный вычислитель. |
| DoNotValidateArgsSignature | Указывает, что подпись оценщика не должна проверяться временем выполнения SearchExpression, что позволяет передавать оценщику любое количество параметров любого типа. Проверка параметров становится задачей самого оценщика. |
| ImplicitArgsLiterals | Указывает, что оценщик предполагает, что его аргументы являются буквальными и будут использоваться как таковые. |
| Default | Подсказки по оценке по умолчанию. В настоящее время по умолчанию поддерживается оценка потока (SearchExpressionEvaluationHints.ThreadSupported). |