1 Star 0 Fork 0

h79/goutils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
yaml.go 1008 Bytes
一键复制 编辑 原始数据 按行查看 历史
huqiuyun 提交于 2023-10-28 15:50 . fixed file
package yaml
import (
"gitee.com/h79/goutils/common/file"
"gitee.com/h79/goutils/common/result"
"gopkg.in/yaml.v3"
"os"
)
func Write(name string, data interface{}, perm os.FileMode) error {
return file.WriteFileName(name, perm, func(w *os.File) error {
enc := yaml.NewEncoder(w)
enc.SetIndent(2)
if err := enc.Encode(data); err != nil {
return result.Errorf(result.ErrYaml, "Encode %s yaml failed,err: %v", name, err).Log()
}
return nil
})
}
func Read(name string, data interface{}) error {
_, err := file.ReadFileName(name, func(r *os.File) error {
dec := yaml.NewDecoder(r)
if err := dec.Decode(data); err != nil {
return result.Errorf(result.ErrYaml, "Decode %s yaml failed,err: %v", name, err).Log()
}
return nil
})
return err
}
type coder struct {
}
func (j *coder) Unmarshal(content []byte, v interface{}) error {
return yaml.Unmarshal(content, v)
}
func (j *coder) Marshal(v interface{}) ([]byte, error) {
return yaml.Marshal(v)
}
var DefaultCoder = &coder{}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/h79/goutils.git
git@gitee.com:h79/goutils.git
h79
goutils
goutils
v1.22.6

搜索帮助