From 8f56cbbaceb349e9d054ee5e88170a199e917d19 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Fri, 27 Aug 2021 11:58:39 -0700 Subject: Expose capacity and reserve on rust::String --- src/cxx.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/cxx.cc') 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(this->data()); } -- cgit v1.2.3