using System;
using System.Diagnostics;

namespace Zodiacon.DebugHelp
{
	// Token: 0x02000008 RID: 8
	[DebuggerDisplay("{Name,nq} offset={Offset,d} size={Size,d}")]
	public sealed class StructMember
	{
		// Token: 0x17000007 RID: 7
		// (get) Token: 0x06000011 RID: 17 RVA: 0x000020E1 File Offset: 0x000002E1
		// (set) Token: 0x06000012 RID: 18 RVA: 0x000020E9 File Offset: 0x000002E9
		public StructDescriptor Parent { get; internal set; }

		// Token: 0x17000008 RID: 8
		// (get) Token: 0x06000013 RID: 19 RVA: 0x000020F2 File Offset: 0x000002F2
		public string Name
		{
			get
			{
				return this.Symbol.Name;
			}
		}

		// Token: 0x17000009 RID: 9
		// (get) Token: 0x06000014 RID: 20 RVA: 0x000020FF File Offset: 0x000002FF
		public int Size
		{
			get
			{
				return this.Symbol.Size;
			}
		}

		// Token: 0x06000015 RID: 21 RVA: 0x0000210C File Offset: 0x0000030C
		public StructMember(ref SymbolInfo symbol, int offset)
		{
			this.Symbol = symbol;
			this.Offset = offset;
		}

		// Token: 0x06000016 RID: 22 RVA: 0x00002127 File Offset: 0x00000327
		public StructMember Clone()
		{
			StructMember structMember = (StructMember)base.MemberwiseClone();
			structMember.Parent = null;
			return structMember;
		}

		// Token: 0x1700000A RID: 10
		// (get) Token: 0x06000017 RID: 23 RVA: 0x0000213B File Offset: 0x0000033B
		public int TypeId
		{
			get
			{
				return this.Symbol.TypeIndex;
			}
		}

		// Token: 0x06000018 RID: 24 RVA: 0x00002148 File Offset: 0x00000348
		public override string ToString()
		{
			return string.Format("{0}, size={1}, offset={2}, typeid={3} tag={4}", new object[]
			{
				this.Symbol.Name,
				this.Symbol.Size,
				this.Offset,
				this.Symbol.TypeIndex,
				this.Symbol.Tag
			});
		}

		// Token: 0x04000007 RID: 7
		public readonly int Offset;

		// Token: 0x04000009 RID: 9
		public readonly SymbolInfo Symbol;

		// Token: 0x0400000A RID: 10
		public long Value;
	}
}
