diff options
| author | Ben Navetta <[email protected]> | 2014-08-18 20:04:32 -0400 |
|---|---|---|
| committer | Ben Navetta <[email protected]> | 2014-08-18 20:04:32 -0400 |
| commit | 37ccc4c00d22391b994190f59230d283509726d1 (patch) | |
| tree | 829909fe92bd0e1a10686c15c80142617d205b9b /status.go | |
| parent | 39d825a2a85d839ac7ba2a531947166a108d72d4 (diff) | |
add ByIndex, reorder to match other files
Diffstat (limited to 'status.go')
| -rw-r--r-- | status.go | 26 |
1 files changed, 17 insertions, 9 deletions
@@ -27,16 +27,24 @@ const ( StatusIgnored = C.GIT_STATUS_IGNORED ) -type StatusList struct { - ptr *C.git_status_list -} - type StatusEntry struct { Status Status HeadToIndex DiffDelta IndexToWorkdir DiffDelta } +func statusEntryFromC(statusEntry *C.git_status_entry) StatusEntry { + return StatusEntry { + Status: Status(statusEntry.status), + HeadToIndex: diffDeltaFromC(statusEntry.head_to_index), + IndexToWorkdir: diffDeltaFromC(statusEntry.index_to_workdir), + } +} + +type StatusList struct { + ptr *C.git_status_list +} + func newStatusListFromC(ptr *C.git_status_list) *StatusList { if ptr == nil { return nil @@ -60,10 +68,10 @@ func (statusList *StatusList) Free() error { return nil } -func statusEntryFromC(statusEntry *C.git_status_entry) StatusEntry { - return StatusEntry { - Status: Status(statusEntry.status), - HeadToIndex: diffDeltaFromC(statusEntry.head_to_index), - IndexToWorkdir: diffDeltaFromC(statusEntry.index_to_workdir), +func (statusList *StatusList) ByIndex(index int) (StatusEntry, error) { + if statusList.ptr == nil { + return StatusEntry{}, ErrInvalid } + ptr := C.git_status_byindex(statusList.ptr, C.size_t(index)) + return statusEntryFromC(ptr), nil } |
