mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-30 06:30:01 +00:00
Replace std::string and const char* CreateSharedString with string_view (#6315)
It is useful to be able to call CreateSharedString with a string_view. A string_view can be implicitly converted from a std::string or a const char*. This means if string_view is available, we can use it instead of both other functions and get all 3.
This commit is contained in:
@@ -1611,6 +1611,16 @@ class FlatBufferBuilder {
|
|||||||
return off;
|
return off;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef FLATBUFFERS_HAS_STRING_VIEW
|
||||||
|
/// @brief Store a string in the buffer, which can contain any binary data.
|
||||||
|
/// If a string with this exact contents has already been serialized before,
|
||||||
|
/// instead simply returns the offset of the existing string.
|
||||||
|
/// @param[in] str A const std::string_view to store in the buffer.
|
||||||
|
/// @return Returns the offset in the buffer where the string starts
|
||||||
|
Offset<String> CreateSharedString(const flatbuffers::string_view str) {
|
||||||
|
return CreateSharedString(str.data(), str.size());
|
||||||
|
}
|
||||||
|
#else
|
||||||
/// @brief Store a string in the buffer, which null-terminated.
|
/// @brief Store a string in the buffer, which null-terminated.
|
||||||
/// If a string with this exact contents has already been serialized before,
|
/// If a string with this exact contents has already been serialized before,
|
||||||
/// instead simply returns the offset of the existing string.
|
/// instead simply returns the offset of the existing string.
|
||||||
@@ -1628,6 +1638,7 @@ class FlatBufferBuilder {
|
|||||||
Offset<String> CreateSharedString(const std::string &str) {
|
Offset<String> CreateSharedString(const std::string &str) {
|
||||||
return CreateSharedString(str.c_str(), str.length());
|
return CreateSharedString(str.c_str(), str.length());
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/// @brief Store a string in the buffer, which can contain any binary data.
|
/// @brief Store a string in the buffer, which can contain any binary data.
|
||||||
/// If a string with this exact contents has already been serialized before,
|
/// If a string with this exact contents has already been serialized before,
|
||||||
|
|||||||
Reference in New Issue
Block a user