#include #include #include //memchr #include //uint32_t #include #include "erl_nif.h" struct domain { ErlNifBinary protocol; ErlNifBinary domain; unsigned int port; //ErlNifBinary path; size_t path; bool success; }; void get_protocol(uint8_t* s, struct domain* out, uint8_t* len); inline void get_domain(uint8_t* s, struct domain* out, uint8_t* len); inline void get_port(uint8_t* s, struct domain* out, uint8_t* len); inline void get_path(uint8_t* s, struct domain* out, uint8_t* len); inline void lower(uint8_t* s,uint8_t* end); ERL_NIF_TERM parse_url(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]);