1package tq
2
3import "fmt"
4
5type MalformedObjectError struct {
6	Name string
7	Oid  string
8
9	missing bool
10}
11
12func newObjectMissingError(name, oid string) error {
13	return &MalformedObjectError{Name: name, Oid: oid, missing: true}
14}
15
16func newCorruptObjectError(name, oid string) error {
17	return &MalformedObjectError{Name: name, Oid: oid, missing: false}
18}
19
20func (e MalformedObjectError) Missing() bool { return e.missing }
21
22func (e MalformedObjectError) Corrupt() bool { return !e.Missing() }
23
24func (e MalformedObjectError) Error() string {
25	if e.Corrupt() {
26		return fmt.Sprintf("corrupt object: %s (%s)", e.Name, e.Oid)
27	}
28	return fmt.Sprintf("missing object: %s (%s)", e.Name, e.Oid)
29}
30