LookAtMySuitBot/js/node_modules/protodef/ProtoDef/doc/protocol.md

42 lines
912 B
Markdown
Raw Normal View History

2023-12-24 20:08:39 -05:00
# Protocol
ProtoDef defines a protocol json format. It organizes types in namespaces.
Example:
```json
{
"types": {
"pstring": "native",
"varint": "native"
},
"namespace1": {
"types": {
"mytype": [
"pstring",
"varint"
]
},
"namespace2": {
"packet": "mytype"
}
}
}
```
> Don't define types with same name (or override types in child namespaces) because this will lead to implementation-defined behavior.
> Same with override of built-in types such as `u8`.
## **types** : { [String]: Type | "native", ... }
Arguments:
* [object] : a type definition
* * [key] : the name
* * [value] : the type (or `"native"` if implemented)
* * * 0 : name of used type
* * * 1 : options of used type
## **[String]** : { [namespace], ... }
Arguments:
* [object] : A namespace object
* * [key] : type name
* * [value] : namespace or type (see above) definition