英文:
How to use yaml.Validate in cuelang for yaml validation?
问题
以下是要翻译的内容:
/cuelang.org/go/yaml.go
func Validate(b []byte, v cue.Value) error {
_, err := pkgyaml.Validate(b, v)
return err
}
没有任何示例代码告诉我如何使用这个API,我需要一些示例来了解如何使用它。
英文:
/cuelang.org/go/yaml.go
func Validate(b []byte, v cue.Value) error {
_, err := pkgyaml.Validate(b, v)
return err
}
There isn't any sample code to tell me how to use this API, I need some examples to understand how to use it.
答案1
得分: 1
我明白了。首先,我们需要一个cue文件:
// demo.cue
min: number
max: number & >min
然后是:
// valid_test.go
package demo
import (
"cuelang.org/go/cue/cuecontext"
"cuelang.org/go/encoding/yaml"
"fmt"
"io/ioutil"
"strings"
"testing"
)
const Yaml = `
min: 10
max: 5
`
func TestValidate(t *testing.T) {
r := strings.NewReader(Yaml)
b, _ := ioutil.ReadAll(r)
cue, _ := ioutil.ReadFile("demo.cue")
// Cue API for Go
c := cuecontext.New()
v := c.CompileBytes(cue)
err := yaml.Validate(b, v)
fmt.Println(err) // max: invalid value 5 (out of bound >10)
}
英文:
I figured it out. First we need a cue file:
// demo.cue
min: number
max: number & >min
And then:
// valid_test.go
package demo
import (
"cuelang.org/go/cue/cuecontext"
"cuelang.org/go/encoding/yaml"
"fmt"
"io/ioutil"
"strings"
"testing"
)
const Yaml = `
min: 10
max: 5
`
func TestValidate(t *testing.T) {
r := strings.NewReader(Yaml)
b, _ := ioutil.ReadAll(r)
cue, _ := ioutil.ReadFile("demo.cue")
// Cue API for Go
c := cuecontext.New()
v := c.CompileBytes(cue)
err := yaml.Validate(b, v)
fmt.Println(err) // max: invalid value 5 (out of bound >10)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论