public static string Render(this AstNaryOperator @operator) { return(@operator switch { AstNaryOperator.Add => "$add", AstNaryOperator.Avg => "$avg", AstNaryOperator.Concat => "$concat", AstNaryOperator.ConcatArrays => "$concatArrays", AstNaryOperator.Max => "$max", AstNaryOperator.MergeObjects => "$mergeObjects", AstNaryOperator.Min => "$min", AstNaryOperator.Multiply => "$multiply", AstNaryOperator.SetEquals => "$setEquals", AstNaryOperator.SetIntersection => "$setIntersection", AstNaryOperator.SetUnion => "$setUnion", AstNaryOperator.StdDevPop => "$stdDevPop", AstNaryOperator.StdDevSamp => "$stdDevSamp", AstNaryOperator.Sum => "$sum", _ => throw new InvalidOperationException($"Unexpected n-ary operator: {@operator}.") });
public AstNaryExpression(AstNaryOperator @operator, params AstExpression[] args) : this(@operator, (IEnumerable <AstExpression>)args) { }
public AstNaryExpression(AstNaryOperator @operator, IEnumerable <AstExpression> args) { _operator = @operator; _args = Ensure.IsNotNull(args, nameof(args)).AsReadOnlyList(); }