github.com/ipld/go-ipld-prime@v0.21.0/schema/gen/go/HACKME_abbrevs.md (about) 1 abbreviations 2 ============= 3 4 A lot of abbreviations are used the generated code in the interest of minimizing the size of the output. 5 6 This is a short index of the most common ones: 7 8 - `n` -- **n**ode, of course -- the accessor functions on node implementations usually refer to their 'this' as 'n'. 9 - `na` -- **n**ode **a**ssembler 10 - `la` or `ma` may also be seen for **l**ist and **m**ap in some contexts (but may refer to same type being called `na` in other contexts). 11 - `w` -- **w**ork-in-progress node -- you'll see this in nearly every assembler (e.g. `na.w` is a very common string). 12 13 inside nodes: 14 15 - `x` -- a placeholder for "the thing" for types that contain only one element of data (e.g., the string inside a codegen'd node of string kind). 16 - `t` -- **t**able -- the slice inside most map nodes that is used for alloc amortizations and maintaining order. 17 - `m` -- **m**ap -- the actual map inside most map nodes (seealso `t`, which is usually a sibling). 18 19 inside assemblers: 20 21 - `va` -- **v**alue **a**ssembler -- an assembler for values in lists or maps (often embedded in the node asembler, e.g. `ma.va` and `la.va` are common strings). 22 - `ka` -- **k**ey **a**ssembler -- an assembler for keys in maps (often embedded in the node asembler, e.g. `ma.ka` is a common string). 23 - `ca_*` -- **c**hild **a**ssembler -- the same concept as `ka` and `va`, but appearing in structs and other types that have differentiated children. 24 - `cm` -- **c**hild **m**aybe -- a piece of memory sometimes found in a node assembler for statekeeping for child assemblers. 25 - `m` -- **m**aybe pointer -- a pointer to where an assembler should put a mark when it's finished. (this is often a pointer to a parent structure's 'cm'!)