| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // Copyright 2014 Manu Martinez-Almeida. All rights reserved.
- // Use of this source code is governed by a MIT style
- // license that can be found in the LICENSE file.
- package render
- import "net/http"
- type Render interface {
- Render(http.ResponseWriter, int, ...interface{}) error
- }
- var (
- JSON Render = jsonRender{}
- IndentedJSON Render = indentedJSON{}
- XML Render = xmlRender{}
- HTMLPlain Render = htmlPlainRender{}
- Plain Render = plainTextRender{}
- Redirect Render = redirectRender{}
- Data Render = dataRender{}
- _ Render = HTMLRender{}
- _ Render = &HTMLDebugRender{}
- )
- func WriteHeader(w http.ResponseWriter, code int, contentType string) {
- contentType = joinStrings(contentType, "; charset=utf-8")
- w.Header().Set("Content-Type", contentType)
- w.WriteHeader(code)
- }
- func joinStrings(a ...string) string {
- if len(a) == 0 {
- return ""
- }
- if len(a) == 1 {
- return a[0]
- }
- n := 0
- for i := 0; i < len(a); i++ {
- n += len(a[i])
- }
- b := make([]byte, n)
- n = 0
- for _, s := range a {
- n += copy(b[n:], s)
- }
- return string(b)
- }
|