lua bindings for libyaml(https://github.com/yaml/libyaml.git).
local yaml = require("lyaml")
--编码
--value: 输入的lua table
--res:输出yaml字符串
--err:错误信息
local res, err = yaml.encode(value)
--解码
--value: 输入的yaml字符串
--res:输出lua
local res = yaml.decode(value)
--保存到文件
--yamlfile: 保存的yaml文件名
--value: 输入的lua
--header: yaml的自定义头,不传使用默认
--res:成功或者失败
local ok = yaml.save("./bb.yaml", xxlua)
--从文件读取
--yamlfile: 读取的yaml文件名
--res:输出yaml字符串
--err:错误信息
local flua, ferr = yaml.open("./bb.yaml")
--本示例使用了quanta引擎
--https://github.com/xiyoo0812/quanta.git
local log_dump = logger.dump
local cyaml = [[
base: &base
name: Everyone has same name
id: 123456
foo: &foo
<<: *base
age: 10
bar: &bar
<<: *base
age: 20
]]
local xlua = yaml.decode(cyaml)
log_dump("lyxml decode yxml:{}", xlua)
local yxml = yaml.encode(xlua)
log_dump("lyxml encode yxml:{}", yxml)
local ok = yaml.save("./bb.yaml", xlua)
log_dump("lyxml save yxml:{}", ok)
local flua = yaml.open("./bb.yaml")
log_dump("lyxml open yaml:{}", flua)