/// <summary> /// Returns an enumerate that iterates through index entries. This /// will iterate over a snapshot of the index, so the underlying /// index can safely be mutated during iteration. /// </summary> /// <returns>An enumerator of <see cref="IndexEntry"/> objects</returns> public unsafe IEnumerator <IndexEntry> GetEnumerator() { git_index_iterator *iterator = null; Ensure.NativeSuccess(() => libgit2.git_index_iterator_new(out iterator, nativeIndex), this); return(IndexEnumerator.FromNative(iterator)); }
internal unsafe override void Dispose(bool disposing) { if (nativeIterator != null) { libgit2.git_index_iterator_free(nativeIterator); nativeIterator = null; } }
internal unsafe static IndexEnumerator FromNative(git_index_iterator *nativeIterator) { return(new IndexEnumerator(nativeIterator)); }
private unsafe IndexEnumerator(git_index_iterator *nativeIterator) { Ensure.ArgumentNotNull(nativeIterator, "iterator"); this.nativeIterator = nativeIterator; }
public static extern unsafe void git_index_iterator_free(git_index_iterator *iterator);
public static extern unsafe int git_index_iterator_next(out git_index_entry *entry, git_index_iterator *iterator);
public static extern unsafe int git_index_iterator_new(out git_index_iterator *iterator, git_index *index);