ProfileSorters.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace Ryujinx.Profiler.UI
  5. {
  6. public static class ProfileSorters
  7. {
  8. public class InstantAscending : IComparer<KeyValuePair<ProfileConfig, TimingInfo>>
  9. {
  10. public int Compare(KeyValuePair<ProfileConfig, TimingInfo> pair1, KeyValuePair<ProfileConfig, TimingInfo> pair2)
  11. => pair2.Value.Instant.CompareTo(pair1.Value.Instant);
  12. }
  13. public class AverageAscending : IComparer<KeyValuePair<ProfileConfig, TimingInfo>>
  14. {
  15. public int Compare(KeyValuePair<ProfileConfig, TimingInfo> pair1, KeyValuePair<ProfileConfig, TimingInfo> pair2)
  16. => pair2.Value.AverageTime.CompareTo(pair1.Value.AverageTime);
  17. }
  18. public class TotalAscending : IComparer<KeyValuePair<ProfileConfig, TimingInfo>>
  19. {
  20. public int Compare(KeyValuePair<ProfileConfig, TimingInfo> pair1, KeyValuePair<ProfileConfig, TimingInfo> pair2)
  21. => pair2.Value.TotalTime.CompareTo(pair1.Value.TotalTime);
  22. }
  23. public class TagAscending : IComparer<KeyValuePair<ProfileConfig, TimingInfo>>
  24. {
  25. public int Compare(KeyValuePair<ProfileConfig, TimingInfo> pair1, KeyValuePair<ProfileConfig, TimingInfo> pair2)
  26. => StringComparer.CurrentCulture.Compare(pair1.Key.Search, pair2.Key.Search);
  27. }
  28. }
  29. }