toml.go (820B)
1 // Copyright 2022 Gin Core Team. All rights reserved. 2 // Use of this source code is governed by a MIT style 3 // license that can be found in the LICENSE file. 4 5 package render 6 7 import ( 8 "net/http" 9 10 "github.com/pelletier/go-toml/v2" 11 ) 12 13 // TOML contains the given interface object. 14 type TOML struct { 15 Data any 16 } 17 18 var TOMLContentType = []string{"application/toml; charset=utf-8"} 19 20 // Render (TOML) marshals the given interface object and writes data with custom ContentType. 21 func (r TOML) Render(w http.ResponseWriter) error { 22 r.WriteContentType(w) 23 24 bytes, err := toml.Marshal(r.Data) 25 if err != nil { 26 return err 27 } 28 29 _, err = w.Write(bytes) 30 return err 31 } 32 33 // WriteContentType (TOML) writes TOML ContentType for response. 34 func (r TOML) WriteContentType(w http.ResponseWriter) { 35 writeContentType(w, TOMLContentType) 36 }