public unsafe BulkNodeElement* Values(int i, BulkNodeElement* buffer)
        {
            Debug.Assert(0 <= i && i < Count);
            if (PointerSize != 8)
            {
                BulkNodeElement32* basePtr = (BulkNodeElement32*)(((byte*)DataStart) + 8);
                BulkNodeElement32* value = basePtr + i;

                buffer->Id = value->Id;
                buffer->Size = value->Size;
                buffer->Address = value->Address;
                buffer->TypeNameId = value->TypeNameId;
                buffer->Flags = value->Flags;
                buffer->AttributeCount = value->AttributeCount;
                buffer->EdgeCount = value->EdgeCount;
                return buffer;
            }
            else
            {
                BulkNodeElement* basePtr = (BulkNodeElement*)(((byte*)DataStart) + 8);
                return basePtr + i;
            }
        }
 public unsafe BulkNodeElement Val(int i)
 {
     BulkNodeElement ret = new BulkNodeElement();
     return *Values(i, &ret);
 }
        public unsafe BulkNodeElement Val(int i)
        {
            BulkNodeElement ret = new BulkNodeElement();

            return(*Values(i, &ret));
        }