feat(encoding): experimental yaml v3 library support

This commit is contained in:
Mark Sagi-Kazar 2022-01-01 16:48:46 +01:00 committed by Márk Sági-Kazár
parent 9934fe79e7
commit f8a13cf704
5 changed files with 33 additions and 4 deletions

View file

@ -17,6 +17,7 @@ jobs:
matrix: matrix:
os: [ubuntu-latest, macos-latest, windows-latest] os: [ubuntu-latest, macos-latest, windows-latest]
go: ['1.14', '1.15', '1.16', '1.17'] go: ['1.14', '1.15', '1.16', '1.17']
tags: ['', 'viper_yaml3']
env: env:
GOFLAGS: -mod=readonly GOFLAGS: -mod=readonly
@ -30,11 +31,11 @@ jobs:
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Test - name: Test
run: go test -race -v ./... run: go test -race -tags '${{ matrix.tags }}' -v ./...
if: runner.os != 'Windows' if: runner.os != 'Windows'
- name: Test (without race detector) - name: Test (without race detector)
run: go test -v ./... run: go test -tags '${{ matrix.tags }}' -v ./...
if: runner.os == 'Windows' if: runner.os == 'Windows'
lint: lint:

2
go.mod
View file

@ -17,6 +17,7 @@ require (
github.com/subosito/gotenv v1.2.0 github.com/subosito/gotenv v1.2.0
gopkg.in/ini.v1 v1.66.2 gopkg.in/ini.v1 v1.66.2
gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
) )
require ( require (
@ -65,5 +66,4 @@ require (
google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa // indirect google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa // indirect
google.golang.org/grpc v1.43.0 // indirect google.golang.org/grpc v1.43.0 // indirect
google.golang.org/protobuf v1.27.1 // indirect google.golang.org/protobuf v1.27.1 // indirect
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
) )

View file

@ -1,6 +1,6 @@
package yaml package yaml
import "gopkg.in/yaml.v2" // import "gopkg.in/yaml.v2"
// Codec implements the encoding.Encoder and encoding.Decoder interfaces for YAML encoding. // Codec implements the encoding.Encoder and encoding.Decoder interfaces for YAML encoding.
type Codec struct{} type Codec struct{}

View file

@ -0,0 +1,14 @@
//go:build !viper_yaml3
// +build !viper_yaml3
package yaml
import yamlv2 "gopkg.in/yaml.v2"
var yaml = struct {
Marshal func(in interface{}) (out []byte, err error)
Unmarshal func(in []byte, out interface{}) (err error)
}{
Marshal: yamlv2.Marshal,
Unmarshal: yamlv2.Unmarshal,
}

View file

@ -0,0 +1,14 @@
//go:build viper_yaml3
// +build viper_yaml3
package yaml
import yamlv3 "gopkg.in/yaml.v3"
var yaml = struct {
Marshal func(in interface{}) (out []byte, err error)
Unmarshal func(in []byte, out interface{}) (err error)
}{
Marshal: yamlv3.Marshal,
Unmarshal: yamlv3.Unmarshal,
}