ref: 20a26c67f53252f643a9f20bac0fd73b3b8be863
dir: /ref/ref.go/
// Package ref provides general, detached, and symbolic references.
package ref
import "codeberg.org/lindenii/furgit/objectid"
// Ref is a Git reference.
//
// Implementations must be in this package.
type Ref interface {
isRef()
Name() string
}
// Detached points directly to an object ID.
type Detached struct {
RefName string
ID objectid.ObjectID
// Peeled is the peeled target when available (for annotated tags).
//
// This field is optional backend-provided metadata. Backends that do not
// have peel metadata available may leave it nil.
Peeled *objectid.ObjectID
}
// Name returns the fully-qualified reference name.
func (ref Detached) Name() string {
return ref.RefName
}
func (Detached) isRef() {}
// Symbolic points to another reference name.
type Symbolic struct {
RefName string
Target string
}
// Name returns the fully-qualified reference name.
func (ref Symbolic) Name() string {
return ref.RefName
}
func (Symbolic) isRef() {}