From 775b076861a1d2c260c32befef12770833baeffd Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期二, 29 十月 2019 11:17:47 +0800
Subject: [PATCH] fixed

---
 readwriter.go |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/readwriter.go b/readwriter.go
index 523a605..7649741 100644
--- a/readwriter.go
+++ b/readwriter.go
@@ -56,8 +56,40 @@
 	return rw.name
 }
 
-// Read
+// DirectRead create byte in func
+func (rw *ReadWriteCloser) DirectRead() ([]byte, error) {
+	buf, err := rw.GetReadBuffer()
+	if err != nil {
+		return nil, err
+	}
 
+	data := make([]byte, len(buf.Data))
+
+	copy(data, buf.Data)
+	isEOF := buf.Flags[eofFlagIndex]&eofFlagMask != 0
+
+	if err = rw.SendReadBuffer(buf); err != nil {
+		return nil, err
+	}
+
+	if isEOF {
+		return data, io.EOF
+	}
+
+	return data, nil
+}
+
+// Peek get length
+func (rw *ReadWriteCloser) Peek() (n int, err error) {
+	buf, err := rw.GetReadBuffer()
+	if err != nil {
+		return 0, err
+	}
+
+	return len(buf.Data), nil
+}
+
+// Read
 func (rw *ReadWriteCloser) Read(p []byte) (n int, err error) {
 	buf, err := rw.GetReadBuffer()
 	if err != nil {

--
Gitblit v1.8.0