aboutsummaryrefslogtreecommitdiff
path: root/objectstored/stored.go
blob: 8fe8800c05bad563246d0ffb2b22d53897bbdb58 (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// Package objectstored wraps parsed objects with their storage object IDs.
package objectstored

import (
	"codeberg.org/lindenii/furgit/object"
	"codeberg.org/lindenii/furgit/objectid"
)

// StoredObject is a parsed object paired with its storage ID.
type StoredObject interface {
	// ID returns the object ID the object was loaded from.
	ID() objectid.ObjectID
	// Object returns the parsed object value.
	Object() object.Object
}

// StoredBlob is a parsed blob paired with its storage ID.
type StoredBlob struct {
	id   objectid.ObjectID
	blob *object.Blob
}

// NewStoredBlob creates one stored blob wrapper.
func NewStoredBlob(id objectid.ObjectID, blob *object.Blob) *StoredBlob {
	return &StoredBlob{id: id, blob: blob}
}

// ID returns the object ID this blob was loaded from.
func (stored *StoredBlob) ID() objectid.ObjectID {
	return stored.id
}

// Object returns the parsed blob as the generic object interface.
func (stored *StoredBlob) Object() object.Object {
	return stored.blob
}

// Blob returns the parsed blob value.
func (stored *StoredBlob) Blob() *object.Blob {
	return stored.blob
}

// StoredTree is a parsed tree paired with its storage ID.
type StoredTree struct {
	id   objectid.ObjectID
	tree *object.Tree
}

// NewStoredTree creates one stored tree wrapper.
func NewStoredTree(id objectid.ObjectID, tree *object.Tree) *StoredTree {
	return &StoredTree{id: id, tree: tree}
}

// ID returns the object ID this tree was loaded from.
func (stored *StoredTree) ID() objectid.ObjectID {
	return stored.id
}

// Object returns the parsed tree as the generic object interface.
func (stored *StoredTree) Object() object.Object {
	return stored.tree
}

// Tree returns the parsed tree value.
func (stored *StoredTree) Tree() *object.Tree {
	return stored.tree
}

// StoredCommit is a parsed commit paired with its storage ID.
type StoredCommit struct {
	id     objectid.ObjectID
	commit *object.Commit
}

// NewStoredCommit creates one stored commit wrapper.
func NewStoredCommit(id objectid.ObjectID, commit *object.Commit) *StoredCommit {
	return &StoredCommit{id: id, commit: commit}
}

// ID returns the object ID this commit was loaded from.
func (stored *StoredCommit) ID() objectid.ObjectID {
	return stored.id
}

// Object returns the parsed commit as the generic object interface.
func (stored *StoredCommit) Object() object.Object {
	return stored.commit
}

// Commit returns the parsed commit value.
func (stored *StoredCommit) Commit() *object.Commit {
	return stored.commit
}

// StoredTag is a parsed tag paired with its storage ID.
type StoredTag struct {
	id  objectid.ObjectID
	tag *object.Tag
}

// NewStoredTag creates one stored tag wrapper.
func NewStoredTag(id objectid.ObjectID, tag *object.Tag) *StoredTag {
	return &StoredTag{id: id, tag: tag}
}

// ID returns the object ID this tag was loaded from.
func (stored *StoredTag) ID() objectid.ObjectID {
	return stored.id
}

// Object returns the parsed tag as the generic object interface.
func (stored *StoredTag) Object() object.Object {
	return stored.tag
}

// Tag returns the parsed tag value.
func (stored *StoredTag) Tag() *object.Tag {
	return stored.tag
}