public unsafe bool MoveNext()
        {
            IntPtr output;
            var    hasNext = _impl.Next(1, new IntPtr(&output), out var fetched).Success;

            Current = hasNext && fetched == 1 ? Marshal.PtrToStringUni(output) : null;
            return(hasNext);
        }
 public bool MoveNext()
 {
     unsafe
     {
         var output  = new string[1];
         int count   = 0;
         var hasNext = enumString.Next(1, output, new IntPtr(&count)) == Result.Ok.Code;
         current = hasNext ? output[0] : null;
         return(hasNext);
     }
 }