Provide a possible short-circuit for filtering

This commit is contained in:
Matt Nadareski
2021-02-03 09:08:59 -08:00
parent dd4a2acba5
commit 61dc45a1c7

View File

@@ -56,6 +56,11 @@ namespace SabreTools.Filtering
/// Filter for Machine fields
/// </summary>
public MachineFilter MachineFilter { get; set; }
/// <summary>
/// Determines if any filters have been set
/// </summary>
public bool HasFilters { get; private set; } = false;
#endregion
@@ -111,6 +116,7 @@ namespace SabreTools.Filtering
if (machineField != MachineField.NULL)
{
MachineFilter.SetFilter(machineField, value, negate);
HasFilters = true;
continue;
}
@@ -119,6 +125,7 @@ namespace SabreTools.Filtering
if (datItemField != DatItemField.NULL)
{
DatItemFilter.SetFilter(datItemField, value, negate);
HasFilters = true;
continue;
}
@@ -376,6 +383,10 @@ namespace SabreTools.Filtering
if (MachineFilter == null || DatItemFilter == null)
return false;
// If no filters were set, return true
if (HasFilters)
return true;
InternalStopwatch watch = new InternalStopwatch("Applying filters to DAT");
// If we're filtering per machine, bucket by machine first