gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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 }