public sealed class SourceCodeInfo : object, IMessage<SourceCodeInfo>, IEquatable<SourceCodeInfo>, IDeepCloneable<SourceCodeInfo>, IBufferMessage, IMessage
Encapsulates information about the original source file from which a FileDescriptorProto was generated.
Implements
IMessage<SourceCodeInfo>, IEquatable<SourceCodeInfo>, IDeepCloneable<SourceCodeInfo>, IBufferMessage, IMessageNamespace
Google.Protobuf.ReflectionAssembly
Google.Protobuf.dll
Constructors
SourceCodeInfo()
public SourceCodeInfo()
SourceCodeInfo(SourceCodeInfo)
public SourceCodeInfo(SourceCodeInfo other)
Parameter | |
---|---|
Name | Description |
other | SourceCodeInfo |
Fields
LocationFieldNumber
public const int LocationFieldNumber = null
Field number for the "location" field.
Field Value | |
---|---|
Type | Description |
Int32 |
Properties
Descriptor
public static MessageDescriptor Descriptor { get; }
Property Value | |
---|---|
Type | Description |
MessageDescriptor |
Location
public RepeatedField<SourceCodeInfo.Types.Location> Location { get; }
A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. This information is intended to be useful to IDEs, code indexers, documentation generators, and similar tools.
For example, say we have a file like: message Foo { optional string foo = 1; } Let's look at just the field definition: optional string foo = 1; ^ ^^ ^^ ^ ^^^ a bc de f ghi We have the following locations: span path represents [a,i) [ 4, 0, 2, 0 ] The whole field definition. [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). [c,d) [ 4, 0, 2, 0, 5 ] The type (string). [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
Notes:
- A location may refer to a repeated field itself (i.e. not to any particular index within it). This is used whenever a set of elements are logically enclosed in a single code segment. For example, an entire extend block (possibly containing multiple extension definitions) will have an outer location whose path refers to the "extensions" repeated field without an index.
- Multiple locations may have the same path. This happens when a single logical declaration is spread out across multiple places. The most obvious example is the "extend" block again -- there may be multiple extend blocks in the same scope, each of which will have the same path.
- A location's span is not always a subset of its parent's span. For example, the "extendee" of an extension declaration appears at the beginning of the "extend" block and is shared by all extensions within the block.
- Just because a location's span is a subset of some other location's span does not mean that it is a descendant. For example, a "group" defines both a type and a field in a single declaration. Thus, the locations corresponding to the type and field and their components will overlap.
- Code which tries to interpret locations should probably be designed to ignore those that it doesn't understand, as more types of locations could be recorded in the future.
Property Value | |
---|---|
Type | Description |
RepeatedField<SourceCodeInfo.Types.Location> |
Parser
public static MessageParser<SourceCodeInfo> Parser { get; }
Property Value | |
---|---|
Type | Description |
MessageParser<SourceCodeInfo> |
Methods
CalculateSize()
public int CalculateSize()
Returns | |
---|---|
Type | Description |
Int32 |
Clone()
public SourceCodeInfo Clone()
Returns | |
---|---|
Type | Description |
SourceCodeInfo |
Equals(SourceCodeInfo)
public bool Equals(SourceCodeInfo other)
Parameter | |
---|---|
Name | Description |
other | SourceCodeInfo |
Returns | |
---|---|
Type | Description |
Boolean |
Equals(Object)
public override bool Equals(object other)
Parameter | |
---|---|
Name | Description |
other | Object |
Returns | |
---|---|
Type | Description |
Boolean |
GetHashCode()
public override int GetHashCode()
Returns | |
---|---|
Type | Description |
Int32 |
MergeFrom(CodedInputStream)
public void MergeFrom(CodedInputStream input)
Parameter | |
---|---|
Name | Description |
input | CodedInputStream |
MergeFrom(SourceCodeInfo)
public void MergeFrom(SourceCodeInfo other)
Parameter | |
---|---|
Name | Description |
other | SourceCodeInfo |
ToString()
public override string ToString()
Returns | |
---|---|
Type | Description |
String |
WriteTo(CodedOutputStream)
public void WriteTo(CodedOutputStream output)
Parameter | |
---|---|
Name | Description |
output | CodedOutputStream |
Explicit Interface Implementations
IBufferMessage.InternalMergeFrom(ref ParseContext)
void IBufferMessage.InternalMergeFrom(ref ParseContext input)
Parameter | |
---|---|
Name | Description |
input | ParseContext |
IBufferMessage.InternalWriteTo(ref WriteContext)
void IBufferMessage.InternalWriteTo(ref WriteContext output)
Parameter | |
---|---|
Name | Description |
output | WriteContext |
IMessage.Descriptor
MessageDescriptor IMessage.Descriptor { get; }
Returns | |
---|---|
Type | Description |
MessageDescriptor |