github.com/insolar/vanilla@v0.0.0-20201023172447-248fdf805322/iokit/writerto.go (about) 1 // Copyright 2020 Insolar Network Ltd. 2 // All rights reserved. 3 // This material is licensed under the Insolar License version 1.0, 4 // available at https://github.com/insolar/assured-ledger/blob/master/LICENSE.md. 5 6 package iokit 7 8 import "io" 9 10 var _ io.Writer = WriterFunc(nil) 11 12 type WriterFunc func([]byte) (int, error) 13 14 func (v WriterFunc) Write(b []byte) (int, error) { 15 if v == nil { 16 return 0, nil 17 } 18 return v(b) 19 } 20 21 var _ io.Reader = ReaderFunc(nil) 22 23 type ReaderFunc func([]byte) (int, error) 24 25 func (v ReaderFunc) Read(b []byte) (int, error) { 26 if v == nil { 27 return 0, nil 28 } 29 return v(b) 30 } 31 32 var _ io.WriterTo = WriterToFunc(nil) 33 34 type WriterToFunc func(io.Writer) (int64, error) 35 36 func (v WriterToFunc) WriteTo(w io.Writer) (int64, error) { 37 if v == nil { 38 return 0, nil 39 } 40 return v(w) 41 }