#include <dragonnet/peer.h>
-void dragonnet_recv_raw(DragonnetPeer *p, void *buf, size_t n);
-void dragonnet_read_raw(u8 **buf, size_t *n, void *data, size_t len);
+typedef struct {
+ size_t siz;
+ bool (*deserialize)(DragonnetPeer *, void *);
+ void (*free)(void *);
+} DragonnetType;
+
+extern DragonnetTypeId dragonnet_num_types;
+extern DragonnetType dragonnet_types[];
+
+bool dragonnet_recv_raw(DragonnetPeer *p, void *buf, size_t n);
#endif