Pet*_*lák 2 yaml haskell pretty-print aeson
我Data.Yaml用来以人类可读的格式存储一些数据.但是,数据的某些部分是数字列表或矩阵.YAML输出,块序列样式,非常详细:
- - 1
- 2
- 3
- - 4
- 5
Run Code Online (Sandbox Code Playgroud)
相反,我希望这些部分以流程序列样式进行编码,就像
[[1,2,3],[4,5]]
Run Code Online (Sandbox Code Playgroud)
有办法怎么做?
Zet*_*eta 11
不幸的是.yaml用途libyaml.虽然您希望使用流序列样式,但当前实现使用YAML_ANY_SEQUENCE_STYLE(0)而不是YAML_FLOW_SEQUENCE_STYLE(2),因此YAML_BLOCK_SEQUENCE_STYLE(1,但发射器仅检查相等YAML_FLOW_SEQUENCE_STYLE).
这被硬编码到toEventRawHaskell中的包装器中.应该可以编写encodeWith,使用特殊的toEventRawWith并采用其他选项,但目前情况并非如此.你可以打开一个功能请求,但是有一个功能要求.
编辑:的确,Data.Yaml.encode将返回"[[1,2,3], [4,5]]"如果替换出现的所有0 -- YAML_ANY_SEQUENCE_STYLE同2 -- YAML_FLOW_SEQUENCE_STYLE在Text/Libyaml.hs.因此,您需要在本地修补库,或者询问该功能请求.