aboutsummaryrefslogtreecommitdiff
path: root/src/cxx.cc
diff options
context:
space:
mode:
authorDavid Tolnay <dtolnay@gmail.com>2021-08-27 13:20:35 -0700
committerGitHub <noreply@github.com>2021-08-27 13:20:35 -0700
commit800d98989532e519d422b94544e1421c9cb73006 (patch)
tree69dda3e26ff6e0c96715050fd6dd5917ee1402f5 /src/cxx.cc
parent36131a0818cee5c64c36b53eeb58d2d42e75adf4 (diff)
parent8f56cbbaceb349e9d054ee5e88170a199e917d19 (diff)
downloadcxx-800d98989532e519d422b94544e1421c9cb73006.tar.gz
Merge pull request #924 from dtolnay/ruststringcap
Expose capacity and reserve on rust::String
Diffstat (limited to 'src/cxx.cc')
-rw-r--r--src/cxx.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/cxx.cc b/src/cxx.cc
index 921b17db..2a615483 100644
--- a/src/cxx.cc
+++ b/src/cxx.cc
@@ -40,8 +40,11 @@ bool cxxbridge1$string$from_utf16(rust::String *self, const char16_t *ptr,
void cxxbridge1$string$drop(rust::String *self) noexcept;
const char *cxxbridge1$string$ptr(const rust::String *self) noexcept;
std::size_t cxxbridge1$string$len(const rust::String *self) noexcept;
+std::size_t cxxbridge1$string$capacity(const rust::String *self) noexcept;
void cxxbridge1$string$reserve_additional(rust::String *self,
size_t additional) noexcept;
+void cxxbridge1$string$reserve_total(rust::String *self,
+ size_t new_cap) noexcept;
// rust::Str
void cxxbridge1$str$new(rust::Str *self) noexcept;
@@ -165,6 +168,14 @@ const char *String::c_str() noexcept {
return ptr;
}
+std::size_t String::capacity() const noexcept {
+ return cxxbridge1$string$capacity(this);
+}
+
+void String::reserve(std::size_t new_cap) noexcept {
+ cxxbridge1$string$reserve_total(this, new_cap);
+}
+
String::iterator String::begin() noexcept {
return const_cast<char *>(this->data());
}