#ifndef INCLUDE_net_h__
#define INCLUDE_net_h__
#include "git2_util.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 bool git_net_str_is_url(const char *str);
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_parse_scp(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,
bool allow_offsite,
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_str *out, git_net_url *url);
extern int git_net_url_fmt_path(git_str *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