Hello.
Is this still relevant?
When i read the protobuf source code, i got a bit confused, because in arenastring.h file i found that:
```
// The string pointer is tagged to be either a default, externally owned value,
// a mutable heap allocated value, or an arena allocated value.
```
1. So, if i use arena there would be no heap allocations for string fields. Because for std::string allocation memory would be taken from the arena instead of the heap. Is this correct?
2. Also, there are Set(const char* s, size_t n, Arena* arena) methods that don't use std::string at all. Although, pointer will go to the Arena::Create<std::string>(&arena, s.data(), s.length()) method. I didn't find what is going on after this, but semantically it shouldn't use heap too. Is this correct?
Thank you.