Added fix for multivalued map.
Build and Test Module / build-and-test (push) Successful in 6s
Details
Build and Test Module / build-and-test (push) Successful in 6s
Details
This commit is contained in:
parent
8b198c58ee
commit
39bb474522
|
@ -183,17 +183,14 @@ struct MultiValueMap(
|
||||||
* k = The key to remove.
|
* k = The key to remove.
|
||||||
*/
|
*/
|
||||||
void remove(KeyType k) {
|
void remove(KeyType k) {
|
||||||
|
import std.algorithm : remove;
|
||||||
long idx = indexOf(k);
|
long idx = indexOf(k);
|
||||||
if (idx == -1) return;
|
if (idx == -1) return;
|
||||||
if (entries.length == 1) {
|
if (entries.length == 1) {
|
||||||
clear();
|
clear();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (idx + 1 < entries.length) {
|
entries = entries.remove(idx);
|
||||||
const i = cast(size_t) idx;
|
|
||||||
entries[i .. $ - 1] = entries[i + 1 .. $];
|
|
||||||
}
|
|
||||||
entries.length = entries.length - 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -446,3 +443,11 @@ unittest {
|
||||||
builder.add("a", "456");
|
builder.add("a", "456");
|
||||||
assert(builder.build()[] == [StringMultiValueMap.Entry("a", ["123", "456"])], builder.build().toString);
|
assert(builder.build()[] == [StringMultiValueMap.Entry("a", ["123", "456"])], builder.build().toString);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unittest {
|
||||||
|
MultiValueMap!(string, string) map;
|
||||||
|
map.add("a", "one");
|
||||||
|
map.add("b", "two");
|
||||||
|
map.add("c", "three");
|
||||||
|
map.remove("a");
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue