+HashList* getSubStruct(const char *key, size_t keylen);
+
+/* These may return NULL if not foud */
+#define ssubbstr(s, a) SSubBstr(s, a, sizeof(a) - 1)
+const StrBuf *SSubBstr(HashList *sub, const char *key, size_t keylen);
+
+#define xsubbstr(s, a, b) (char*) XSubBstr(s, a, sizeof(a) - 1, b)
+const char *XSubBstr(HashList *sub, const char *key, size_t keylen, size_t *len);
+
+#define lsubbstr(s, a) LSubBstr(s, a, sizeof(a) - 1)
+long LSubBstr(HashList *sub, const char *key, size_t keylen);
+
+#define isubbstr(s, a) ISubBstr(s, a, sizeof(a) - 1)
+#define isubbcstr(s, a) ISubBstr(s, a.Key, a.len)
+int ISubBstr(HashList *sub, const char *key, size_t keylen);
+
+#define havesubbstr(s, a) HaveSubBstr(s, a, sizeof(a) - 1)
+int HaveSubBstr(HashList *sub, const char *key, size_t keylen);
+
+#define yessubbstr(s, a) YesSubBstr(s, a, sizeof(a) - 1)
+int YesSubBstr(HashList *sub, const char *key, size_t keylen);
+
+
+
+