An opaque struct that represents the current parsing state and is passed along
as the parsing proceeds.
All the public methods are intended to be invoked only by the generated code,
users should never invoke them directly.
The next field tag, or 0 for end of input. (0 is never a valid tag.)
Remarks
If this method returns 0, it doesn't necessarily mean the end of all
the data in this CodedInputReader; it may be the end of the logical input
for an embedded message, for example.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eParseContext\u003c/code\u003e struct represents the current state during parsing and is intended for internal use by generated code.\u003c/p\u003e\n"],["\u003cp\u003eThis struct is an opaque type that should not be directly invoked by users.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eParseContext\u003c/code\u003e provides a variety of methods for reading different data types, such as \u003ccode\u003eReadBool()\u003c/code\u003e, \u003ccode\u003eReadInt32()\u003c/code\u003e, \u003ccode\u003eReadString()\u003c/code\u003e, and more.\u003c/p\u003e\n"],["\u003cp\u003eMethods like \u003ccode\u003eReadGroup()\u003c/code\u003e and \u003ccode\u003eReadMessage()\u003c/code\u003e facilitate reading embedded group and message fields, respectively, within the input.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eReadTag()\u003c/code\u003e method is used to read a field tag, using 0 to signify the "end of input".\u003c/p\u003e\n"]]],[],null,["# Struct ParseContext (3.27.1)\n\nVersion latestkeyboard_arrow_down\n\n- [3.27.1 (latest)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.ParseContext)\n- [3.23.0](/dotnet/docs/reference/Google.Protobuf/3.23.0/Google.Protobuf.ParseContext)\n- [3.15.8](/dotnet/docs/reference/Google.Protobuf/3.15.8/Google.Protobuf.ParseContext) \n\n public ref struct ParseContext\n\nAn opaque struct that represents the current parsing state and is passed along\nas the parsing proceeds.\nAll the public methods are intended to be invoked only by the generated code,\nusers should never invoke them directly. \n\nInherited Members\n-----------------\n\n[ValueType.Equals(object)](https://learn.microsoft.com/dotnet/api/system.valuetype.equals) \n[ValueType.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.valuetype.gethashcode) \n[ValueType.ToString()](https://learn.microsoft.com/dotnet/api/system.valuetype.tostring) \n[object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals)\n\nNamespace\n---------\n\n[Google.Protobuf](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf)\n\nAssembly\n--------\n\nGoogle.Protobuf.dll\n\nMethods\n-------\n\n### ReadBool()\n\n public bool ReadBool()\n\nReads a bool field from the input.\n\n### ReadBytes()\n\n public ByteString ReadBytes()\n\nReads a bytes field value from the input.\n\n### ReadDouble()\n\n public double ReadDouble()\n\nReads a double field from the input.\n\n### ReadEnum()\n\n public int ReadEnum()\n\nReads an enum field value from the input.\n\n### ReadFixed32()\n\n public uint ReadFixed32()\n\nReads a fixed32 field from the input.\n\n### ReadFixed64()\n\n public ulong ReadFixed64()\n\nReads a fixed64 field from the input.\n\n### ReadFloat()\n\n public float ReadFloat()\n\nReads a float field from the input.\n\n### ReadGroup(IMessage)\n\n public void ReadGroup(IMessage message)\n\nReads an embedded group field from the input.\n\n### ReadInt32()\n\n public int ReadInt32()\n\nReads an int32 field from the input.\n\n### ReadInt64()\n\n public long ReadInt64()\n\nReads an int64 field from the input.\n\n### ReadLength()\n\n public int ReadLength()\n\nReads a length for length-delimited data.\n\n**Remarks** \nThis is internally just reading a varint, but this method exists\nto make the calling code clearer.\n\n### ReadMessage(IMessage)\n\n public void ReadMessage(IMessage message)\n\nReads an embedded message field value from the input.\n\n### ReadSFixed32()\n\n public int ReadSFixed32()\n\nReads an sfixed32 field value from the input.\n\n### ReadSFixed64()\n\n public long ReadSFixed64()\n\nReads an sfixed64 field value from the input.\n\n### ReadSInt32()\n\n public int ReadSInt32()\n\nReads an sint32 field value from the input.\n\n### ReadSInt64()\n\n public long ReadSInt64()\n\nReads an sint64 field value from the input.\n\n### ReadString()\n\n public string ReadString()\n\nReads a string field from the input.\n\n### ReadTag()\n\n public uint ReadTag()\n\nReads a field tag, returning the tag of 0 for \"end of input\".\n\n**Remarks** \nIf this method returns 0, it doesn't necessarily mean the end of all\nthe data in this CodedInputReader; it may be the end of the logical input\nfor an embedded message, for example.\n\n### ReadUInt32()\n\n public uint ReadUInt32()\n\nReads a uint32 field value from the input.\n\n### ReadUInt64()\n\n public ulong ReadUInt64()\n\nReads a uint64 field from the input."]]