diff options
Diffstat (limited to 'chat.h')
-rw-r--r-- | chat.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/chat.h b/chat.h index c7053c7..198b84e 100644 --- a/chat.h +++ b/chat.h @@ -168,6 +168,19 @@ extern struct Network { char invex; } network; +static inline uint prefixBit(char p) { + char *s = strchr(network.prefixes, p); + if (!s) return 0; + return 1 << (s - network.prefixes); +} + +static inline char bitPrefix(uint p) { + for (uint i = 0; network.prefixes[i]; ++i) { + if (p & (1 << i)) return network.prefixes[i]; + } + return '\0'; +} + #define ENUM_CAP \ X("causal.agency/consumer", CapConsumer) \ X("chghost", CapChghost) \ |