From f1848e48b83d9a095944697e0bd56bf79e530f5e Mon Sep 17 00:00:00 2001 From: Axel Wagner Date: Fri, 26 Apr 2013 21:12:27 +0200 Subject: [PATCH] Implement most of the oid_-functions as Methods --- git.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/git.go b/git.go index 68712d4..45806c2 100644 --- a/git.go +++ b/git.go @@ -7,6 +7,7 @@ package git */ import "C" import ( + "bytes" "unsafe" ) @@ -67,6 +68,33 @@ func (oid *Oid) Bytes() []byte { return oid.bytes[0:] } +func (oid *Oid) Cmp(oid2 *Oid) int { + return bytes.Compare(oid.bytes[:], oid2.bytes[:]) +} + +func (oid *Oid) Copy() *Oid { + ret := new(Oid) + copy(ret.bytes[:], oid.bytes[:]) + return ret +} + +func (oid *Oid) Equal(oid2 *Oid) bool { + return bytes.Equal(oid.bytes[:], oid2.bytes[:]) +} + +func (oid *Oid) IsZero() bool { + for _, a := range(oid.bytes) { + if a != '0' { + return false + } + } + return true +} + +func (oid *Oid) NCmp(oid2 *Oid, n uint) int { + return bytes.Compare(oid.bytes[:n], oid2.bytes[:n]) +} + type GitError struct { Message string Code int