Add a couple of missing methods around Blob #7
4
blob.go
4
blob.go
|
@ -20,6 +20,10 @@ func (v *Blob) Free() {
|
|||
C.git_object_free(v.ptr)
|
||||
}
|
||||
|
||||
func (v *Blob) Size() int64 {
|
||||
return int64(C.git_blob_rawsize(v.ptr))
|
||||
}
|
||||
|
||||
func (v *Blob) Contents() []byte {
|
||||
size := C.int(C.git_blob_rawsize(v.ptr))
|
||||
buffer := unsafe.Pointer(C.git_blob_rawcontent(v.ptr))
|
||||
|
|
|
@ -92,6 +92,17 @@ func (v *Repository) LookupCommit(o *Oid) (*Commit, error) {
|
|||
return commit, nil
|
||||
}
|
||||
|
||||
func (v *Repository) LookupBlob(o *Oid) (*Blob, error) {
|
||||
blob := new(Blob)
|
||||
ecode := C.git_blob_lookup(&blob.ptr, v.ptr, o.toC())
|
||||
if ecode < 0 {
|
||||
return nil, LastError()
|
||||
}
|
||||
|
||||
runtime.SetFinalizer(blob, (*Blob).Free)
|
||||
return blob, nil
|
||||
}
|
||||
|
||||
func (v *Repository) Walk() (*RevWalk, error) {
|
||||
walk := new(RevWalk)
|
||||
ecode := C.git_revwalk_new(&walk.ptr, v.ptr)
|
||||
|
|
Loading…
Reference in New Issue