arnaucube
arnaucube/arboPublic Self-hosted repository
Merge pull request #29 from vocdoni/use_io_writer

use io.Writer interface for Dump methods
arnaucube 17317030+arnaucube@users.noreply.github.com
Fri, 26 Aug 2022 08:52:15 +0200
commit

c31f1a57c120099812c3015167057d50ffc92bef

parent

40a0fb9bff5415e10cdec79b42e0bffcf0d6edc8

2 files changed, 5 insertions(+), 13 deletions(-)

jump to
M tree.go → tree.go

@@ -1327,7 +1327,7 @@ return t.dump(fromRoot, nil)

} // DumpWriter exports all the Tree leafs writing the bytes in the given Writer -func (t *Tree) DumpWriter(fromRoot []byte, w *bufio.Writer) error { +func (t *Tree) DumpWriter(fromRoot []byte, w io.Writer) error { _, err := t.dump(fromRoot, w) return err }

@@ -1340,7 +1340,7 @@ // Dump length: [ N * (2+len(k+v)) ]. Where N is the number of key-values, and for each k+v:

// [ 1 byte | 1 byte | S bytes | len(v) bytes ] // [ len(k) | len(v) | key | value ] // Where S is the size of the output of the hash function used for the Tree. -func (t *Tree) dump(fromRoot []byte, w *bufio.Writer) ([]byte, error) { +func (t *Tree) dump(fromRoot []byte, w io.Writer) ([]byte, error) { // allow to define which root to use if fromRoot == nil { var err error

@@ -1385,11 +1385,6 @@ if n != len(kv) {

callbackErr = fmt.Errorf("dump: w.Write n!=len(kv), %s", err) return true } - err = w.Flush() - if err != nil { - callbackErr = fmt.Errorf("dump: w.Flush, %s", err) - return true - } } return false })

@@ -1409,7 +1404,7 @@ }

// ImportDumpReader imports the leafs (that have been exported with the Dump // method) in the Tree, reading them from the given reader. -func (t *Tree) ImportDumpReader(r *bufio.Reader) error { +func (t *Tree) ImportDumpReader(r io.Reader) error { if !t.editable() { return ErrSnapshotNotEditable }
M tree_test.go → tree_test.go

@@ -1,7 +1,6 @@

package arbo import ( - "bufio" "encoding/hex" "math" "math/big"

@@ -492,8 +491,7 @@ fileName := filepath.Join(filePath, "dump.bin")

if inFile { f, err := os.Create(fileName) c.Assert(err, qt.IsNil) - w := bufio.NewWriter(f) - err = tree1.DumpWriter(nil, w) + err = tree1.DumpWriter(nil, f) c.Assert(err, qt.IsNil) } else { e, err = tree1.Dump(nil)

@@ -510,8 +508,7 @@

if inFile { f, err := os.Open(filepath.Clean(fileName)) c.Assert(err, qt.IsNil) - r := bufio.NewReader(f) - err = tree2.ImportDumpReader(r) + err = tree2.ImportDumpReader(f) c.Assert(err, qt.IsNil) } else { err = tree2.ImportDump(e)