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)
|
C.git_object_free(v.ptr)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (v *Blob) Size() int64 {
|
||||||
|
return int64(C.git_blob_rawsize(v.ptr))
|
||||||
|
}
|
||||||
|
|
||||||
func (v *Blob) Contents() []byte {
|
func (v *Blob) Contents() []byte {
|
||||||
size := C.int(C.git_blob_rawsize(v.ptr))
|
size := C.int(C.git_blob_rawsize(v.ptr))
|
||||||
buffer := unsafe.Pointer(C.git_blob_rawcontent(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
|
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) {
|
func (v *Repository) Walk() (*RevWalk, error) {
|
||||||
walk := new(RevWalk)
|
walk := new(RevWalk)
|
||||||
ecode := C.git_revwalk_new(&walk.ptr, v.ptr)
|
ecode := C.git_revwalk_new(&walk.ptr, v.ptr)
|
||||||
|
|
Loading…
Reference in New Issue