OSDN Git Service

update get-transaction
[bytom/shuttle.git] / vendor / github.com / gin-gonic / gin / render / reader.go
diff --git a/vendor/github.com/gin-gonic/gin/render/reader.go b/vendor/github.com/gin-gonic/gin/render/reader.go
new file mode 100644 (file)
index 0000000..be2132c
--- /dev/null
@@ -0,0 +1,36 @@
+package render
+
+import (
+       "io"
+       "net/http"
+       "strconv"
+)
+
+type Reader struct {
+       ContentType   string
+       ContentLength int64
+       Reader        io.Reader
+       Headers       map[string]string
+}
+
+// Render (Reader) writes data with custom ContentType and headers.
+func (r Reader) Render(w http.ResponseWriter) (err error) {
+       r.WriteContentType(w)
+       r.Headers["Content-Length"] = strconv.FormatInt(r.ContentLength, 10)
+       r.writeHeaders(w, r.Headers)
+       _, err = io.Copy(w, r.Reader)
+       return
+}
+
+func (r Reader) WriteContentType(w http.ResponseWriter) {
+       writeContentType(w, []string{r.ContentType})
+}
+
+func (r Reader) writeHeaders(w http.ResponseWriter, headers map[string]string) {
+       header := w.Header()
+       for k, v := range headers {
+               if val := header[k]; len(val) == 0 {
+                       header[k] = []string{v}
+               }
+       }
+}