1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-08 14:07:02 +09:00
any-sync/commonspace/object/tree/objecttree/changediffer.go
2024-12-12 21:49:49 +01:00

40 lines
807 B
Go

package objecttree
type changeDiffer struct {
toFind map[string][]*Change
headChanges []Change
attached map[string]*Change
unAttached map[string]*Change
waitList map[string][]string
}
func newChangeDiffer() *changeDiffer {
return &changeDiffer{
toFind: make(map[string][]*Change),
attached: make(map[string]*Change),
unAttached: make(map[string]*Change),
waitList: make(map[string][]string),
}
}
func (d *changeDiffer) MustAttach(ch *Change) {
d.attached[ch.Id] = ch
}
func (d *changeDiffer) AddChanges(changes []*Change) error {
}
func (d *changeDiffer) canAttach(c *Change) (attach bool) {
if c == nil {
return false
}
attach = true
for _, id := range c.PreviousIds {
if _, exists := t.attached[id]; !exists {
attach = false
break
}
}
return
}