diff options
author | Luke T. Shumaker <lukeshu@lukeshu.com> | 2025-01-23 14:00:11 -0700 |
---|---|---|
committer | Luke T. Shumaker <lukeshu@lukeshu.com> | 2025-01-23 18:43:49 -0700 |
commit | 1c368cb010df8f14da9b2585bdcf303014b57b8c (patch) | |
tree | 8e63d13e124ea464a9f6367439ef2d6605c6a872 /lib9p/idl.gen | |
parent | 990dcf244fc4bc09d1395f2a0415a22517db72b7 (diff) |
lib9p: idl.gen: Sort the enum msg_typ values
Diffstat (limited to 'lib9p/idl.gen')
-rwxr-xr-x | lib9p/idl.gen | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib9p/idl.gen b/lib9p/idl.gen index 7c79a28..f154cb1 100755 --- a/lib9p/idl.gen +++ b/lib9p/idl.gen @@ -183,6 +183,10 @@ def gen_h(versions: set[str], typs: list[idl.Type]) -> str: #include <stdint.h> /* for uint{{n}}_t types */ """ + id2typ: dict[int, idl.Message] = {} + for msg in [msg for msg in typs if isinstance(msg, idl.Message)]: + id2typ[msg.msgid] = msg + ret += f""" /* config *********************************************************************/ @@ -216,7 +220,10 @@ enum {idprefix}version {{ """ ret += f"enum {idprefix}msg_type {{ /* uint8_t */\n" namewidth = max(len(msg.name) for msg in typs if isinstance(msg, idl.Message)) - for msg in [msg for msg in typs if isinstance(msg, idl.Message)]: + for n in range(0x100): + if n not in id2typ: + continue + msg = id2typ[n] ret += ifdef_push(1, c_ver_ifdef(msg.in_versions)) ret += f"\t{idprefix.upper()}TYP_{msg.name.ljust(namewidth)} = {msg.msgid},\n" ret += ifdef_pop(0) |