Compare commits
No commits in common. "3755adde029d050fe3d763791efd10632fdb15f2" and "d7f789e0812acbb669b708fdc6278a2ccef493ac" have entirely different histories.
3755adde02
...
d7f789e081
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
/.idea/
|
|
||||||
@ -1 +0,0 @@
|
|||||||
golang 1.18.10
|
|
||||||
58
readerx.go
58
readerx.go
@ -1,58 +0,0 @@
|
|||||||
package readerx
|
|
||||||
|
|
||||||
import "io"
|
|
||||||
|
|
||||||
type Reader struct {
|
|
||||||
reader io.Reader
|
|
||||||
fun func([]byte) (int, error)
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewReader(reader io.Reader) Reader {
|
|
||||||
return Reader{
|
|
||||||
reader: reader,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r Reader) Read(b []byte) (l []byte, n int, err error) {
|
|
||||||
n, err = r.reader.Read(b)
|
|
||||||
if n > 0 {
|
|
||||||
l = b[:n]
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r Reader) ReadX(b []byte) (l []byte, err error) {
|
|
||||||
l, _, err = r.Read(b)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r Reader) readFunc(b []byte) (l []byte, n int, err error) {
|
|
||||||
n, err = r.fun(b)
|
|
||||||
if n > 0 {
|
|
||||||
l = b[:n]
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func ReadFrom(reader io.Reader, b []byte) (l []byte, n int, err error) {
|
|
||||||
l, n, err = NewReader(reader).Read(b)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func ReadFromX(reader io.Reader, b []byte) (l []byte, err error) {
|
|
||||||
l, err = NewReader(reader).ReadX(b)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func ReadFunc(f func([]byte) (int, error), b []byte) (l []byte, n int, err error) {
|
|
||||||
r := Reader{
|
|
||||||
fun: f,
|
|
||||||
}
|
|
||||||
l, n, err = r.readFunc(b)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func ReadFuncX(f func([]byte) (int, error), b []byte) (l []byte, err error) {
|
|
||||||
l, _, err = ReadFunc(f, b)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
Loading…
x
Reference in New Issue
Block a user