sortBadges

Sorts a comma-separated list of badges so that the badges in the badgeOrder array are placed first, in the order they appear in the array.

version(TwitchSupport && WithTwitchPlugin)
private @safe
void
sortBadges
(
ref string badges
,
const string[] badgeOrder
)

Parameters

badges string

A reference to the comma-separated string of badges to sort in place.

badgeOrder string[]

The order of badges to sort by.

Examples

1 const string[4] badgeOrder =
2 [
3     "broadcaster",
4     "moderator",
5     "vip",
6     "subscriber",
7 ];
8 
9 {
10     string badges = "subscriber/14,broadcaster/1";
11     sortBadges(badges, badgeOrder[]);
12     assert((badges == "broadcaster/1,subscriber/14"), badges);
13 }
14 {
15     string badges = "broadcaster/1,broadcaster/1";
16     sortBadges(badges, badgeOrder[]);
17     assert((badges == "broadcaster/1,broadcaster/1"), badges);
18 }
19 {
20     string badges = "subscriber/14,vip/1";
21     sortBadges(badges, badgeOrder[]);
22     assert((badges == "vip/1,subscriber/14"), badges);
23 }
24 {
25     string badges;
26     sortBadges(badges, badgeOrder[]);
27     assert(!badges.length, badges);
28 }
29 {
30     string badges = "hirfharf/1,horfhorf/32";
31     sortBadges(badges, badgeOrder[]);
32     assert((badges == "hirfharf/1,horfhorf/32"), badges);
33 }
34 {
35     string badges = "subscriber/14,moderator/1";
36     sortBadges(badges, badgeOrder[]);
37     assert((badges == "moderator/1,subscriber/14"), badges);
38 }
39 {
40     string badges = "broadcaster/1,asdf/9999";
41     sortBadges(badges, badgeOrder[]);
42     assert((badges == "broadcaster/1,asdf/9999"), badges);
43 }
44 {
45     string badges = "subscriber/91,sub-gifter/25,broadcaster/1";
46     sortBadges(badges, badgeOrder[]);
47     assert((badges == "broadcaster/1,subscriber/91,sub-gifter/25"), badges);
48 }
49 {
50     static immutable string[3] altBadgeOrder =
51     [
52         "a",
53         "b",
54         "c",
55     ];
56 
57     string badges = "f/1,b/2,d/3,c/4,a/5,e/6";
58     sortBadges(badges, altBadgeOrder[]);
59     assert((badges == "a/5,b/2,c/4,f/1,d/3,e/6"), badges);
60 }