2021-09-24 21:13:52 +03:00
|
|
|
# TOML module
|
|
|
|
`toml` is a fully fledged TOML v1.0.0 compatible parser written in pure V.
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
```v
|
|
|
|
import toml
|
2021-11-18 14:27:59 +03:00
|
|
|
import toml.to
|
2021-09-24 21:13:52 +03:00
|
|
|
|
|
|
|
// Complete text from the example in the README.md:
|
|
|
|
// https://github.com/toml-lang/toml/blob/3b11f6921da7b6f5db37af039aa021fee450c091/README.md#Example
|
|
|
|
const toml_text = '# This is a TOML document.
|
|
|
|
|
|
|
|
title = "TOML Example"
|
|
|
|
|
|
|
|
[owner]
|
|
|
|
name = "Tom Preston-Werner"
|
|
|
|
dob = 1979-05-27T07:32:00-08:00 # First class dates
|
|
|
|
|
|
|
|
[database]
|
|
|
|
server = "192.168.1.1"
|
|
|
|
ports = [ 8000, 8001, 8002 ]
|
|
|
|
connection_max = 5000
|
|
|
|
enabled = true
|
|
|
|
|
|
|
|
[servers]
|
|
|
|
|
|
|
|
# Indentation (tabs and/or spaces) is allowed but not required
|
|
|
|
[servers.alpha]
|
|
|
|
ip = "10.0.0.1"
|
|
|
|
dc = "eqdc10"
|
|
|
|
|
|
|
|
[servers.beta]
|
|
|
|
ip = "10.0.0.2"
|
|
|
|
dc = "eqdc10"
|
|
|
|
|
|
|
|
[clients]
|
|
|
|
data = [ ["gamma", "delta"], [1, 2] ]
|
|
|
|
|
|
|
|
# Line breaks are OK when inside arrays
|
|
|
|
hosts = [
|
|
|
|
"alpha",
|
|
|
|
"omega"
|
|
|
|
]'
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
doc := toml.parse(toml_text) or { panic(err) }
|
|
|
|
title := doc.value('title').string()
|
|
|
|
println('title: "$title"')
|
|
|
|
ip := doc.value('servers.alpha.ip').string()
|
|
|
|
println('Server IP: "$ip"')
|
|
|
|
|
2021-11-18 14:27:59 +03:00
|
|
|
toml_json := to.json(doc)
|
2021-09-24 21:13:52 +03:00
|
|
|
println(toml_json)
|
|
|
|
}
|
|
|
|
```
|