1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

toml: parse formatting (#12374)

This commit is contained in:
Larpon
2021-11-04 08:15:50 +01:00
committed by GitHub
parent 2b4154910c
commit 1a54817c81
6 changed files with 199 additions and 60 deletions

View File

@ -0,0 +1,28 @@
import os
import toml
const (
toml_table_text = '
[[products]]
name = "Hammer"
sku = 738594937
[[products]] # empty table within the array
[[products]]
name = "Nail"
sku = 284758393
color = "gray"'
)
fn test_tables() {
mut toml_doc := toml.parse(toml_table_text) or { panic(err) }
toml_json := toml_doc.to_json()
eprintln(toml_json)
assert toml_json == os.read_file(
os.real_path(os.join_path(os.dir(@FILE), 'testdata', os.file_name(@FILE).all_before_last('.'))) +
'.out') or { panic(err) }
}

View File

@ -13,7 +13,6 @@ const (
]
invalid_exceptions = [
// Table
'table/rrbrace.toml',
'table/duplicate-table-array2.toml',
'table/duplicate.toml',
'table/array-implicit.toml',
@ -23,7 +22,6 @@ const (
'table/duplicate-table-array.toml',
// Array
'array/tables-1.toml',
//'array/missing-separator.toml',
'array/text-after-array-entries.toml',
'array/text-before-array-separator.toml',
// Date / Time

View File

@ -69,19 +69,23 @@ fn test_tables() {
arr := toml_doc.value('arr') as []toml.Any
for i := 0; i < arr.len; i++ {
entry := (arr[i] as map[string]toml.Any)
value = entry.value('t.a.b') or { panic(err) }
assert value.int() == i + 1
value = entry.value('T.a.b') or { panic(err) }
assert value.int() == i + 1
}
arr0 := arr[0] as map[string]toml.Any
value = arr0.value('t.a.b') or { panic(err) }
assert value.int() == 1
arr1 := arr[1] as map[string]toml.Any
value = arr1.value('T.a.b') or { panic(err) }
value = arr0.value('T.a.b') or { panic(err) }
assert value.int() == 1
arr2 := arr[2] as map[string]toml.Any
value = arr2.value('t.a.b') or { panic(err) }
arr1 := arr[1] as map[string]toml.Any
value = arr1.value('t.a.b') or { panic(err) }
assert value.int() == 2
arr3 := arr[3] as map[string]toml.Any
value = arr3.value('T.a.b') or { panic(err) }
value = arr1.value('T.a.b') or { panic(err) }
assert value.int() == 2
}

View File

@ -0,0 +1 @@
{ "products": [ { "name": "Hammer", "sku": 738594937 }, { }, { "name": "Nail", "sku": 284758393, "color": "gray" } ] }