github.com/YousefHaggyHeroku/pack@v1.5.5/internal/builder/writer/toml.go (about)

     1  package writer
     2  
     3  import (
     4  	"bytes"
     5  
     6  	"github.com/pelletier/go-toml"
     7  )
     8  
     9  type TOML struct {
    10  	StructuredFormat
    11  }
    12  
    13  func NewTOML() BuilderWriter {
    14  	return &TOML{
    15  		StructuredFormat: StructuredFormat{
    16  			MarshalFunc: func(v interface{}) ([]byte, error) {
    17  				buf := bytes.NewBuffer(nil)
    18  				err := toml.NewEncoder(buf).Order(toml.OrderPreserve).PromoteAnonymous(false).Encode(v)
    19  				if err != nil {
    20  					return []byte{}, err
    21  				}
    22  				return buf.Bytes(), nil
    23  			},
    24  		},
    25  	}
    26  }