#include "message_view.h" namespace yunq { template <> glcr::ErrorOr MessageView::ReadField(uint64_t field_index) { return buffer_.At(field_offset(field_index)); } template <> glcr::ErrorOr MessageView::ReadField( uint64_t field_index) { ExtensionPointer ptr = buffer_.At(field_offset(field_index)); return buffer_.StringAt(offset_ + ptr.offset, ptr.length); } template <> glcr::ErrorOr> MessageView::ReadRepeated( uint64_t field_index) { ExtensionPointer pointer = buffer_.At(field_offset(field_index)); glcr::Vector v; v.Resize(pointer.length / sizeof(uint64_t)); for (uint64_t i = offset_ + pointer.offset; i < offset_ + pointer.offset + pointer.length; i += sizeof(uint64_t)) { v.PushBack(buffer_.At(i)); } return v; } } // namespace yunq