public NativeArray <T> GetRaw <T>(NativeArray key, ReadOptions options) where T : struct { IntPtr error; IntPtr length; var handle = new LevelDbFreeHandle(); // TODO: Remove typecast to int var v = (Ptr <T>)LevelDbInterop.leveldb_get( Handle, options.Handle, key.BaseAddr, key.ByteLength, out length, out error); handle.SetHandle((IntPtr)v); // round down, truncating the array slightly if needed var count = (IntPtr)((ulong)length / Ptr <T> .SizeofT); return(new NativeArray <T>(v, count, handle)); }