| 79 | } |
| 80 | |
| 81 | void CodedOutputData::writeString(const string &value) { |
| 82 | size_t numberOfBytes = value.size(); |
| 83 | this->writeRawVarint32((int32_t) numberOfBytes); |
| 84 | if (m_position + numberOfBytes > m_size) { |
| 85 | auto msg = "m_position: " + to_string(m_position) + ", numberOfBytes: " + to_string(numberOfBytes) + |
| 86 | ", m_size: " + to_string(m_size); |
| 87 | throw out_of_range(msg); |
| 88 | } |
| 89 | memcpy(m_ptr + m_position, ((uint8_t *) value.data()), numberOfBytes); |
| 90 | m_position += numberOfBytes; |
| 91 | } |
| 92 | |
| 93 | size_t CodedOutputData::spaceLeft() { |
| 94 | if (m_size <= m_position) { |