aboutsummaryrefslogtreecommitdiff
path: root/src/server/database/Database/Field.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/database/Database/Field.cpp')
-rw-r--r--src/server/database/Database/Field.cpp27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/server/database/Database/Field.cpp b/src/server/database/Database/Field.cpp
index 664090839c0..6045e8dee81 100644
--- a/src/server/database/Database/Field.cpp
+++ b/src/server/database/Database/Field.cpp
@@ -124,26 +124,20 @@ char const* Field::GetCString() const
std::string Field::GetString() const
{
- if (!_value)
- return "";
-
- char const* string = GetCString();
- if (!string)
- return "";
+ std::string result;
+ if (char const* string = GetCString())
+ result.assign(string, _length);
- return std::string(string, _length);
+ return result;
}
std::string_view Field::GetStringView() const
{
- if (!_value)
- return {};
-
- char const* const string = GetCString();
- if (!string)
- return {};
+ std::string_view result;
+ if (char const* const string = GetCString())
+ result = { string, _length };
- return { string, _length };
+ return result;
}
std::vector<uint8> Field::GetBinary() const
@@ -157,6 +151,11 @@ std::vector<uint8> Field::GetBinary() const
return result;
}
+std::span<uint8 const> Field::GetBinaryView() const
+{
+ return { reinterpret_cast<uint8 const*>(_value), _length };
+}
+
void Field::GetBinarySizeChecked(uint8* buf, size_t length) const
{
ASSERT(_value && (_length == length), "Expected %zu-byte binary blob, got %sdata (%u bytes) instead", length, _value ? "" : "no ", _length);