Updated Writing a Macro (markdown)
This commit is contained in:
parent
f4429c29c9
commit
ec46882282
|
@ -1,6 +1,6 @@
|
||||||
Macros are complex and powerful, allowing you to build the AST imperatively. So how does one build AST? It's not as hard as it sounds.
|
Macros are complex and powerful, allowing you to build the AST imperatively. So how does one build AST? It's not as hard as it sounds.
|
||||||
|
|
||||||
I'm going to go over the process I used to write the marshaling macro used in keineSchweine (github/fowlmouth/keineSchweine/lib/genpacket.nim)
|
I'm going to go over the process I used to write the marshaling macro used in keineSchweine (github/fowlmouth/keineSchweine/dependencies/genpacket)
|
||||||
|
|
||||||
Okay, so I have described a packet as a object type holding the information needed, for example a packet that gets sent out to clients when a new client connects might look like this:
|
Okay, so I have described a packet as a object type holding the information needed, for example a packet that gets sent out to clients when a new client connects might look like this:
|
||||||
```nimrod
|
```nimrod
|
||||||
|
@ -19,5 +19,7 @@ proc readClientJoined (stream: PStream): TClientJoined =
|
||||||
readBE stream, result.playerID
|
readBE stream, result.playerID
|
||||||
readBE stream, result.alias
|
readBE stream, result.alias
|
||||||
```
|
```
|
||||||
|
As you can see, this will result in a specialized function for reading/writing a certain type of packet
|
||||||
|
|
||||||
|
to be continued
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue