run method
Implementation
@override
FilterUseCaseResult<T> run() {
final enabledFilters = filters.where((e) => e.isEnabled);
if (data.isNotEmpty && enabledFilters.isNotEmpty) {
bool composedPredicate(T item) =>
enabledFilters.every((e) => e.predicate(item));
final filteredData = data.where((item) {
return composedPredicate(item);
});
return FilterUseCaseResult(
originalData: data,
filteredData: filteredData,
appliedFilters: enabledFilters,
);
}
return FilterUseCaseResult(
originalData: data,
filteredData: data,
appliedFilters: const [],
);
}