using Strata.SqlTools.Rules.Rule.Expression;
namespace Strata.SqlTools.Rules.Rule.Groups;
///
/// Represents a rule group with sequential rule evaluation (WITH semantics).
///
public class With : Base
{
// TODO: revisit whether ordering should be applied here before delegating
// to the base GetExpressions(); inherit base behavior for now.
///
/// Merges two BoolExpr expressions using WITH semantics.
///
/// The left BoolExpr expression.
/// The right BoolExpr expression.
/// A WITH expression combining both expressions.
protected override BoolExpr Merge(BoolExpr left, BoolExpr right) => new Expression.With(left, right);
///
/// Initializes a new instance of the class.
///
/// The collection of rules to include in this WITH group.
public With(IEnumerable rules) : base(rules) { }
}