public override IEnumerable <BulkString> Request(BulkStringFactory factory) { yield return(name); yield return(key.ToBulkString(factory)); foreach (var argument in by.Arguments(factory)) { yield return(argument); } if (limit is { } value) { yield return(limitArgument); yield return(factory.Create(value.Offset)); yield return(factory.Create(value.Count)); } foreach (var argument in select.Arguments(factory)) { yield return(argument); } if (order == Order.Descending) { yield return(descendingArgument); } if (mode == Mode.Alphabetical) { yield return(alphabeticalArgument); } }