mirror of
https://github.com/vocdoni/arbo.git
synced 2026-01-07 21:14:02 -05:00
use io.Writer interface for Dump methods
Signed-off-by: p4u <pau@dabax.net>
This commit is contained in:
11
tree.go
11
tree.go
@@ -1327,7 +1327,7 @@ func (t *Tree) Dump(fromRoot []byte) ([]byte, error) {
|
||||
}
|
||||
|
||||
// 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 @@ func (t *Tree) DumpWriter(fromRoot []byte, w *bufio.Writer) error {
|
||||
// [ 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 @@ func (t *Tree) dump(fromRoot []byte, w *bufio.Writer) ([]byte, error) {
|
||||
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 @@ func (t *Tree) ImportDump(b []byte) error {
|
||||
|
||||
// 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
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package arbo
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"encoding/hex"
|
||||
"math"
|
||||
"math/big"
|
||||
@@ -492,8 +491,7 @@ func testDumpAndImportDump(t *testing.T, inFile bool) {
|
||||
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 @@ func testDumpAndImportDump(t *testing.T, inFile bool) {
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user