1234567891011121314151617181920212223242526272829303132333435363738 |
- package render
- import (
- "net/http"
- "github.com/gogo/protobuf/proto"
- "github.com/pkg/errors"
- )
- var pbContentType = []string{"application/x-protobuf"}
- // Render (PB) writes data with protobuf ContentType.
- func (r PB) Render(w http.ResponseWriter) error {
- if r.TTL <= 0 {
- r.TTL = 1
- }
- return writePB(w, r)
- }
- // WriteContentType write protobuf ContentType.
- func (r PB) WriteContentType(w http.ResponseWriter) {
- writeContentType(w, pbContentType)
- }
- func writePB(w http.ResponseWriter, obj PB) (err error) {
- var pbBytes []byte
- writeContentType(w, pbContentType)
- if pbBytes, err = proto.Marshal(&obj); err != nil {
- err = errors.WithStack(err)
- return
- }
- if _, err = w.Write(pbBytes); err != nil {
- err = errors.WithStack(err)
- }
- return
- }
|