X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/0cb73c3dde36d0078f3c1aa4200f2edcb5ceed38..448c931a776c3e3f65ca2eab11da0c062d597818:/view.go diff --git a/view.go b/view.go index 4a6e567..8877462 100644 --- a/view.go +++ b/view.go @@ -88,7 +88,7 @@ func (v *View) Append(tree ViewNodeReader) (bool, error) { line := NodeKey{0, v.end} _, err := v.load(tree, line) if err != nil { - return false, err + return false, fmt.Errorf("load appended leaf: %w", err) } v.lines = append(v.lines, line) @@ -121,14 +121,18 @@ func (v *View) fit(tree ViewNodeReader) (bool, error) { for v.merging && size > v.low { best, err := v.mostDue(tree) if err != nil || best < 0 { - return merged, err + if err != nil { + return merged, fmt.Errorf("choose merge candidate: %w", err) + } + + return merged, nil } left, right := v.lines[best], v.lines[best+1] parent := NodeKey{left.level + 1, left.index / 2} _, err = v.load(tree, parent) if err != nil { - return merged, err + return merged, fmt.Errorf("load merged parent: %w", err) } size += v.lineSize(parent) - v.lineSize(left) - v.lineSize(right) @@ -341,7 +345,7 @@ func restoreView(state ViewState, high, low int, tree ViewNodeReader) (*View, er built, err := v.load(tree, line) if err != nil { - return nil, err + return nil, fmt.Errorf("load restored view node: %w", err) } if line.level > 0 && !built {