using System;
using System.Collections.Generic;
using System.Text;
using Google.ProtocolBuffers.DescriptorProtos;
namespace Google.ProtocolBuffers.Descriptors {
  /// 
  /// Base class for descriptors which are also indexed. This is all of them other than
  /// .
  /// 
  public abstract class IndexedDescriptorBase : DescriptorBase
      where TProto : IMessage, IDescriptorProto {
    private readonly int index;
    protected IndexedDescriptorBase(TProto proto, FileDescriptor file, string fullName, int index)
        : base(proto, file, fullName) {
      this.index = index;
    }
    /// 
    /// The index of this descriptor within its parent descriptor. 
    /// 
    /// 
    /// This returns the index of this descriptor within its parent, for
    /// this descriptor's type. (There can be duplicate values for different
    /// types, e.g. one enum type with index 0 and one message type with index 0.)
    /// 
    public int Index {
      get { return index; }
    }
  }
}