diff options
Diffstat (limited to 'tools/V2rayConfigGen/V2rayConfigGen/V2rayRoutingRule.cs')
-rwxr-xr-x | tools/V2rayConfigGen/V2rayConfigGen/V2rayRoutingRule.cs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tools/V2rayConfigGen/V2rayConfigGen/V2rayRoutingRule.cs b/tools/V2rayConfigGen/V2rayConfigGen/V2rayRoutingRule.cs new file mode 100755 index 0000000..23c08e7 --- /dev/null +++ b/tools/V2rayConfigGen/V2rayConfigGen/V2rayRoutingRule.cs @@ -0,0 +1,27 @@ +using System.Linq; + +namespace Crupest.V2ray; + +public record V2rayRoutingRule(V2rayRoutingRuleMatcher Matcher, string OutboundTag) +{ + public static Dictionary<string, List<V2rayRoutingRule>> GroupByOutboundTag(List<V2rayRoutingRule> rules) + { + var result = new Dictionary<string, List<V2rayRoutingRule>>(); + foreach (var group in rules.GroupBy(r => r.OutboundTag)) + { + result[group.Key] = group.ToList(); + } + return result; + } + + public static Dictionary<V2rayRoutingRuleMatcher.MatchByKind, List<V2rayRoutingRule>> GroupByMatchByKind(List<V2rayRoutingRule> rules) + { + var result = new Dictionary<V2rayRoutingRuleMatcher.MatchByKind, List<V2rayRoutingRule>>(); + foreach (var group in rules.GroupBy(r => r.Matcher.MatchBy)) + { + result[group.Key] = group.ToList(); + } + return result; + } +} + |