12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- //
- // Author:
- // Jb Evain (jbevain@gmail.com)
- //
- // Copyright (c) 2008 - 2015 Jb Evain
- // Copyright (c) 2008 - 2011 Novell, Inc.
- //
- // Licensed under the MIT/X11 license.
- //
- using System;
- namespace ILRuntime.Mono.Cecil {
- public struct MetadataToken : IEquatable<MetadataToken> {
- readonly uint token;
- public uint RID {
- get { return token & 0x00ffffff; }
- }
- public TokenType TokenType {
- get { return (TokenType) (token & 0xff000000); }
- }
- public static readonly MetadataToken Zero = new MetadataToken ((uint) 0);
- public MetadataToken (uint token)
- {
- this.token = token;
- }
- public MetadataToken (TokenType type)
- : this (type, 0)
- {
- }
- public MetadataToken (TokenType type, uint rid)
- {
- token = (uint) type | rid;
- }
- public MetadataToken (TokenType type, int rid)
- {
- token = (uint) type | (uint) rid;
- }
- public int ToInt32 ()
- {
- return (int) token;
- }
- public uint ToUInt32 ()
- {
- return token;
- }
- public override int GetHashCode ()
- {
- return (int) token;
- }
- public bool Equals (MetadataToken other)
- {
- return other.token == token;
- }
- public override bool Equals (object obj)
- {
- if (obj is MetadataToken) {
- var other = (MetadataToken) obj;
- return other.token == token;
- }
- return false;
- }
- public static bool operator == (MetadataToken one, MetadataToken other)
- {
- return one.token == other.token;
- }
- public static bool operator != (MetadataToken one, MetadataToken other)
- {
- return one.token != other.token;
- }
- public override string ToString ()
- {
- return string.Format ("[{0}:0x{1}]", TokenType, RID.ToString ("x4"));
- }
- }
- }
|