@cryptotaxi247 / kubo / commits / 13d911008

unixfs: split `precalcNextBuf`

Create new `loadBufNode` function to handle the `buf` logic which is unrelated to the main `precalcNextBuf` logic of processing promises to fetch nodes. License: MIT Signed-off-by: Lucas Molas <schomatis@gmail.com>

Lucas Molas committed Jul 16, 2018 at 11:14 UTC 13d911008823399ccbe356f564ae4b40373eb8d5
1 file changed +8 -4
unixfs/io/pbdagreader.go
+8 -4
@@ -98,16 +98,20 @@ func (dr *PBDagReader) precalcNextBuf(ctx context.Context) error {
98 dr.promises[dr.linkPosition] = nil
99 dr.linkPosition++
100
101 - switch nxt := nxt.(type) {
101 + return dr.loadBufNode(nxt)
102 +}
103 +
104 +func (dr *PBDagReader) loadBufNode(node ipld.Node) error {
105 + switch node := node.(type) {
106 case *mdag.ProtoNode:
103 - fsNode, err := ft.FSNodeFromBytes(nxt.Data())
107 + fsNode, err := ft.FSNodeFromBytes(node.Data())
108 if err != nil {
109 return fmt.Errorf("incorrectly formatted protobuf: %s", err)
110 }
111
112 switch fsNode.Type() {
113 case ftpb.Data_File:
110 - dr.buf = NewPBFileReader(dr.ctx, nxt, fsNode, dr.serv)
114 + dr.buf = NewPBFileReader(dr.ctx, node, fsNode, dr.serv)
115 return nil
116 case ftpb.Data_Raw:
117 dr.buf = NewBufDagReader(fsNode.Data())
@@ -116,7 +120,7 @@ func (dr *PBDagReader) precalcNextBuf(ctx context.Context) error {
120 return fmt.Errorf("found %s node in unexpected place", fsNode.Type().String())
121 }
122 case *mdag.RawNode:
119 - dr.buf = NewBufDagReader(nxt.RawData())
123 + dr.buf = NewBufDagReader(node.RawData())
124 return nil
125 default:
126 return ErrUnkownNodeType