Изменил(а) на 'README.md'

This commit is contained in:
Pavel Shevaev 2022-12-09 12:24:17 +03:00
parent ef37b96e89
commit 80724b1cda
1 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,39 @@
Metagen package is used to describe structures, interfaces, functions, RPC calls using DSL.
This can be useful for codegen, bindings, etc.
Here is an example of some imaginary DSL:
#include enum.meta
func GetPlayer(
id : uint32
) : DataPlayer
func Apply(
fn : func(float, DataPlayer) : uint32
)
struct DataPlayer
@POD @table:player @pkey:id
id : uint32
version : string @strmax:16
gold : uint8 @default:0 #bonus
registered : bool @default:true
func Equals(
o : DataPlayer
v : uint32
) : bool,bool
end
struct ProtoBase
id : uint32
title : string @strmax:16 @default:"Hello"
end
struct ProtoBuilding extends ProtoBase
floors : int32
arr : uint32[] @default:[1,2,3]
end
[Look at tests for an actual API usage.](../master/tests/run.php)