/// <summary> /// Encodes a token /// </summary> /// <param name="token">The token</param> /// <param name="codedToken">Coded token</param> /// <returns><c>true</c> if successful</returns> public bool Encode(uint token, out uint codedToken) { int index = TableTypes.IndexOf(MDToken.ToTable(token)); if (index < 0) { codedToken = uint.MaxValue; return(false); } // This shift can never overflow a uint since bits < 8 (it's at most 5), and // ToRid() returns an integer <= 0x00FFFFFF. codedToken = (MDToken.ToRID(token) << Bits) | (uint)index; return(true); }