|
|
@@ -34,7 +34,7 @@ ConflictSet::ReadRange singleton(Arena &arena, std::span<const uint8_t> key) {
|
|
|
|
std::span<uint8_t>(new (arena) uint8_t[key.size() + 1], key.size() + 1);
|
|
|
|
std::span<uint8_t>(new (arena) uint8_t[key.size() + 1], key.size() + 1);
|
|
|
|
memcpy(r.data(), key.data(), key.size());
|
|
|
|
memcpy(r.data(), key.data(), key.size());
|
|
|
|
r[key.size()] = 0;
|
|
|
|
r[key.size()] = 0;
|
|
|
|
return {key.data(), int(key.size()), r.data(), int(r.size())};
|
|
|
|
return {{key.data(), int(key.size())}, {r.data(), int(r.size())}, 0};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ConflictSet::ReadRange prefixRange(Arena &arena, std::span<const uint8_t> key) {
|
|
|
|
ConflictSet::ReadRange prefixRange(Arena &arena, std::span<const uint8_t> key) {
|
|
|
@@ -52,7 +52,7 @@ ConflictSet::ReadRange prefixRange(Arena &arena, std::span<const uint8_t> key) {
|
|
|
|
auto r = std::span<uint8_t>(new (arena) uint8_t[index + 1], index + 1);
|
|
|
|
auto r = std::span<uint8_t>(new (arena) uint8_t[index + 1], index + 1);
|
|
|
|
memcpy(r.data(), key.data(), index + 1);
|
|
|
|
memcpy(r.data(), key.data(), index + 1);
|
|
|
|
r[r.size() - 1]++;
|
|
|
|
r[r.size() - 1]++;
|
|
|
|
return {key.data(), int(key.size()), r.data(), int(r.size())};
|
|
|
|
return {{key.data(), int(key.size())}, {r.data(), int(r.size())}, 0};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void benchConflictSet() {
|
|
|
|
void benchConflictSet() {
|
|
|
|