use explicit error set
parent
7760389ab8
commit
e4a175d24a
|
|
@ -7,6 +7,14 @@ pub const HostnameParsingError = error{
|
||||||
NoSpaceLeft,
|
NoSpaceLeft,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pub const UrlParsingError = error{
|
||||||
|
HostnameIsNotMacAddress,
|
||||||
|
InvalidFormat,
|
||||||
|
InvalidPort,
|
||||||
|
NoSchemeProvided,
|
||||||
|
UnexpectedCharacter,
|
||||||
|
};
|
||||||
|
|
||||||
fn isUriPathSeparator(c: u8) bool {
|
fn isUriPathSeparator(c: u8) bool {
|
||||||
return switch (c) {
|
return switch (c) {
|
||||||
'?', '#' => true,
|
'?', '#' => true,
|
||||||
|
|
@ -39,7 +47,7 @@ fn isValidMacAddress(mac_address: []const u8) bool {
|
||||||
/// path information for Ghostty's PWD reporting functionality. Takes into account that on macOS
|
/// path information for Ghostty's PWD reporting functionality. Takes into account that on macOS
|
||||||
/// the url passed to this function might have a mac address as its hostname and parses it
|
/// the url passed to this function might have a mac address as its hostname and parses it
|
||||||
/// correctly.
|
/// correctly.
|
||||||
pub fn parseUrl(url: []const u8) !std.Uri {
|
pub fn parseUrl(url: []const u8) UrlParsingError!std.Uri {
|
||||||
return std.Uri.parse(url) catch |e| {
|
return std.Uri.parse(url) catch |e| {
|
||||||
// The mac-address-as-hostname issue is specific to macOS so we just return an error if we
|
// The mac-address-as-hostname issue is specific to macOS so we just return an error if we
|
||||||
// hit it on other platforms.
|
// hit it on other platforms.
|
||||||
|
|
@ -52,7 +60,7 @@ pub fn parseUrl(url: []const u8) !std.Uri {
|
||||||
if (e != error.InvalidPort) return e;
|
if (e != error.InvalidPort) return e;
|
||||||
|
|
||||||
const url_without_scheme_start = std.mem.indexOf(u8, url, "://") orelse {
|
const url_without_scheme_start = std.mem.indexOf(u8, url, "://") orelse {
|
||||||
return error.InvalidScheme;
|
return error.NoSchemeProvided;
|
||||||
};
|
};
|
||||||
const scheme = url[0..url_without_scheme_start];
|
const scheme = url[0..url_without_scheme_start];
|
||||||
const url_without_scheme = url[url_without_scheme_start + 3 ..];
|
const url_without_scheme = url[url_without_scheme_start + 3 ..];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue