Files
herolib/examples/data/heroencoder_example.vsh
2025-10-12 12:30:19 +03:00

77 lines
1.4 KiB
GLSL
Executable File

#!/usr/bin/env -S v -n -w -gc none -cc tcc -d use_openssl -enable-globals run
import incubaid.herolib.data.encoderhero
import incubaid.herolib.core.base
// this is docu at top
@[name: 'teststruct ']
@[params]
pub struct TestStruct {
// this is docu at mid
pub mut:
id int @[hi]
descr string
secret string @[secret]
number int = 1 @[max: 10; min: 1]
yesno bool
liststr []string
listint []int
ss SubStruct
ss2 []SubStruct
}
pub struct SubStruct {
pub mut:
color string
size int
}
fn (self TestStruct) heroscript() !string {
mut out := ''
mut p := encoderhero.encode[TestStruct](self)!
// out += "!!hr.teststruct_define " + p.heroscript() + "\n"
// p = paramsparser.encode[SubStruct](self.ss)!
// p.set("teststruct_id",self.id.str())
// out += "!!hr.substruct_define " + p.heroscript() + "\n"
// for ss2 in self.ss2{
// p = paramsparser.encode[SubStruct](ss2)!
// p.set("teststruct_id",self.id.str())
// out += "!!hr.substruct_item_define " + p.heroscript() + "\n"
// }
return p
}
mut t := TestStruct{
id: 100
descr: '
test
muliline
s
test
muliline
test
muliline
'
number: 2
yesno: true
liststr: ['one', 'two+two']
listint: [1, 2]
ss: SubStruct{
color: 'red'
size: 10
}
}
t.ss2 << SubStruct{
color: 'red1'
size: 11
}
t.ss2 << SubStruct{
color: 'red2'
size: 12
}
println(t.heroscript()!)
// t2:=p.decode[TestStruct]()!
// println(t2)