#ifndef INCLUDE_net_h__
#define INCLUDE_net_h__
#include "common.h"
typedef struct git_net_url {
char *scheme;
char *host;
char *port;
char *path;
char *query;
char *username;
char *password;
} git_net_url;
#define GIT_NET_URL_INIT { NULL }
extern int git_net_url_dup(git_net_url *out, git_net_url *in);
extern int git_net_url_parse(git_net_url *url, const char *str);
extern int git_net_url_joinpath(
git_net_url *out,
git_net_url *in,
const char *path);
extern bool git_net_url_valid(git_net_url *url);
extern bool git_net_url_is_default_port(git_net_url *url);
extern bool git_net_url_is_ipv6(git_net_url *url);
extern int git_net_url_apply_redirect(
git_net_url *url,
const char *redirect_location,
const char *service_suffix);
extern void git_net_url_swap(git_net_url *a, git_net_url *b);
extern int git_net_url_fmt(git_buf *out, git_net_url *url);
extern int git_net_url_fmt_path(git_buf *buf, git_net_url *url);
extern bool git_net_url_matches_pattern(
git_net_url *url,
const char *pattern);
extern bool git_net_url_matches_pattern_list(
git_net_url *url,
const char *pattern_list);
extern void git_net_url_dispose(git_net_url *url);
#endif