|
@@ -139,8 +139,8 @@ impl Host<String> {
|
|
|
///
|
|
///
|
|
|
/// https://url.spec.whatwg.org/#host-parsing
|
|
/// https://url.spec.whatwg.org/#host-parsing
|
|
|
pub fn parse(input: &str) -> Result<Self, ParseError> {
|
|
pub fn parse(input: &str) -> Result<Self, ParseError> {
|
|
|
- if input.starts_with("[") {
|
|
|
|
|
- if !input.ends_with("]") {
|
|
|
|
|
|
|
+ if input.starts_with('[') {
|
|
|
|
|
+ if !input.ends_with(']') {
|
|
|
return Err(ParseError::InvalidIpv6Address)
|
|
return Err(ParseError::InvalidIpv6Address)
|
|
|
}
|
|
}
|
|
|
return parse_ipv6addr(&input[1..input.len() - 1]).map(Host::Ipv6)
|
|
return parse_ipv6addr(&input[1..input.len() - 1]).map(Host::Ipv6)
|
|
@@ -304,14 +304,14 @@ fn parse_ipv4number(mut input: &str) -> Result<u32, ()> {
|
|
|
if input.starts_with("0x") || input.starts_with("0X") {
|
|
if input.starts_with("0x") || input.starts_with("0X") {
|
|
|
input = &input[2..];
|
|
input = &input[2..];
|
|
|
r = 16;
|
|
r = 16;
|
|
|
- } else if input.len() >= 2 && input.starts_with("0") {
|
|
|
|
|
|
|
+ } else if input.len() >= 2 && input.starts_with('0') {
|
|
|
input = &input[1..];
|
|
input = &input[1..];
|
|
|
r = 8;
|
|
r = 8;
|
|
|
}
|
|
}
|
|
|
if input.is_empty() {
|
|
if input.is_empty() {
|
|
|
return Ok(0);
|
|
return Ok(0);
|
|
|
}
|
|
}
|
|
|
- if input.starts_with("+") {
|
|
|
|
|
|
|
+ if input.starts_with('+') {
|
|
|
return Err(())
|
|
return Err(())
|
|
|
}
|
|
}
|
|
|
match u32::from_str_radix(&input, r) {
|
|
match u32::from_str_radix(&input, r) {
|