public static string Render(this AstSetWindowFieldsOperator @operator) { return(@operator switch { AstSetWindowFieldsOperator.AddToSet => "$addToSet", AstSetWindowFieldsOperator.Average => "$avg", AstSetWindowFieldsOperator.Count => "$count", AstSetWindowFieldsOperator.CovariancePop => "$covariancePop", AstSetWindowFieldsOperator.CovarianceSamp => "$covarianceSamp", AstSetWindowFieldsOperator.DenseRank => "$denseRank", AstSetWindowFieldsOperator.Derivative => "$derivative", AstSetWindowFieldsOperator.DocumentNumber => "$documentNumber", AstSetWindowFieldsOperator.ExpMovingAvgWithAlphaWeighting => "$expMovingAvg", AstSetWindowFieldsOperator.ExpMovingAvgWithPositionalWeighting => "$expMovingAvg", AstSetWindowFieldsOperator.First => "$first", AstSetWindowFieldsOperator.Integral => "$integral", AstSetWindowFieldsOperator.Last => "$last", AstSetWindowFieldsOperator.Max => "$max", AstSetWindowFieldsOperator.Min => "$min", AstSetWindowFieldsOperator.Push => "$push", AstSetWindowFieldsOperator.Rank => "$rank", AstSetWindowFieldsOperator.Shift => "$shift", AstSetWindowFieldsOperator.StdDevPop => "$stdDevPop", AstSetWindowFieldsOperator.StdDevSamp => "$stdDevSamp", AstSetWindowFieldsOperator.Sum => "$sum", _ => throw new InvalidOperationException($"Unexpected SetWindowFields operator: {@operator}.") });
public AstSetWindowFieldsWindowExpression(AstSetWindowFieldsOperator @operator, IEnumerable <AstExpression> args, AstSetWindowFieldsWindow window) { _operator = @operator; _args = Ensure.IsNotNull(args, nameof(args)).AsReadOnlyList(); _window = window; // optional }