public AliasFunctionExpression(IGraphiteExpression innerExpression, string alias) => (InnerExpression, _alias) = (innerExpression, alias);
public AliasSubFunctionExpression(IGraphiteExpression innerExpression, string search, string replace) => (InnerExpression, _search, _replace) = (innerExpression, new Regex(search), replace);
public CurrentBelowFunctionExpression(IGraphiteExpression innerExpression, double n) => (InnerExpression, _n) = (innerExpression, n);
public CountSeriesFunctionExpression(IGraphiteExpression innerExpression) => (InnerExpression, _graphCount) = (innerExpression, innerExpression.Graphs.Count());
public DelayFunctionExpression(IGraphiteExpression innerExpression, double steps) => (InnerExpression, _steps) = (innerExpression, (int)steps);
public DerivativeSeriesFunctionExpression(IGraphiteExpression innerExpression) => (InnerExpression) = (innerExpression);
public ResampleSumFunctionExpression(IGraphiteExpression innerExpression, TimeSpan spacing) : base(innerExpression, spacing, "sum") { }
public ResampleMinFunctionExpression(IGraphiteExpression innerExpression, TimeSpan spacing) : base(innerExpression, spacing, "min") { }
public ResampleFunctionExpression(IGraphiteExpression innerExpression, TimeSpan spacing, string func) => (InnerExpression, Spacing, Func) = (innerExpression, spacing, func.ToAggregator());
public ResampleAverageFunctionExpression(IGraphiteExpression innerExpression, TimeSpan spacing) : base(innerExpression, spacing, "avg") { }
public MovingWindowFunctionExpression(IGraphiteExpression innerExpression, TimeSpan spacing, string func) => (InnerExpression, _spacing, _func) = (innerExpression, spacing, func.ToAggregator());
public AsPercentFuncionExpression(IGraphiteExpression innerExpression, IGraphiteExpression total) => (InnerExpression, _total) = (innerExpression, total.Graphs.FirstOrDefault() ?? new NullGraph());
public ChangedFunctionExpression(IGraphiteExpression innerExpression) => (InnerExpression) = (innerExpression);
public ExcludeFunctionExpression(IGraphiteExpression innerExpression, string exclude) => (InnerExpression, _exclude) = (innerExpression, new Regex(exclude));
public GrepFunctionExpression(IGraphiteExpression innerExpression, string grep) => (InnerExpression, _grep) = (innerExpression, new Regex(grep));