Files
bkl/document.go
2023-10-16 15:34:29 -07:00

42 lines
678 B
Go

package bkl
import (
"go.jetpack.io/typeid"
)
type Document struct {
ID typeid.TypeID
Parents []*Document
Data any
}
func NewDocument() *Document {
return &Document{
ID: typeid.Must(typeid.New("doc")),
}
}
func NewDocumentWithData(data any) *Document {
doc := NewDocument()
doc.Data = data
return doc
}
func (d *Document) AddParents(parents ...*Document) {
d.Parents = append(d.Parents, parents...)
}
func (d *Document) AllParents() []*Document {
ret := append([]*Document{}, d.Parents...)
for _, parent := range d.Parents {
ret = append(ret, parent.AllParents()...)
}
return ret
}
func (d *Document) String() string {
return d.ID.String()
}