Rollup merge of #128641 - Konippi:standardize-duplicate-processes-in-… · patricklam/verify-rust-std@68e6537 (original) (raw)
`@@ -112,18 +112,18 @@ impl<'a> Parser<'a> {
`
112
112
`max_digits: Option,
`
113
113
`allow_zero_prefix: bool,
`
114
114
`) -> Option {
`
115
``
`` -
// If max_digits.is_some(), then we are parsing a u8
or u16
and
``
116
``
`` -
// don't need to use checked arithmetic since it fits within a u32
.
``
117
``
`-
if let Some(max_digits) = max_digits {
`
118
``
`-
// u32::MAX = 4_294_967_295u32, which is 10 digits long.
`
119
``
`` -
// max_digits
must be less than 10 to not overflow a u32
.
``
120
``
`-
debug_assert!(max_digits < 10);
`
121
``
-
122
``
`-
self.read_atomically(move |p| {
`
123
``
`-
let mut result = 0_u32;
`
124
``
`-
let mut digit_count = 0;
`
125
``
`-
let has_leading_zero = p.peek_char() == Some('0');
`
``
115
`+
self.read_atomically(move |p| {
`
``
116
`+
let mut digit_count = 0;
`
``
117
`+
let has_leading_zero = p.peek_char() == Some('0');
`
``
118
+
``
119
`` +
// If max_digits.is_some(), then we are parsing a u8
or u16
and
``
``
120
`` +
// don't need to use checked arithmetic since it fits within a u32
.
``
``
121
`+
let result = if let Some(max_digits) = max_digits {
`
``
122
`+
// u32::MAX = 4_294_967_295u32, which is 10 digits long.
`
``
123
`` +
// max_digits
must be less than 10 to not overflow a u32
.
``
``
124
`+
debug_assert!(max_digits < 10);
`
126
125
``
``
126
`+
let mut result = 0_u32;
`
127
127
`while let Some(digit) = p.read_atomically(|p| p.read_char()?.to_digit(radix)) {
`
128
128
` result *= radix;
`
129
129
` result += digit;
`
`@@ -134,35 +134,27 @@ impl<'a> Parser<'a> {
`
134
134
`}
`
135
135
`}
`
136
136
``
137
``
`-
if digit_count == 0 {
`
138
``
`-
None
`
139
``
`-
} else if !allow_zero_prefix && has_leading_zero && digit_count > 1 {
`
140
``
`-
None
`
141
``
`-
} else {
`
142
``
`-
result.try_into().ok()
`
143
``
`-
}
`
144
``
`-
})
`
145
``
`-
} else {
`
146
``
`-
self.read_atomically(move |p| {
`
``
137
`+
result.try_into().ok()
`
``
138
`+
} else {
`
147
139
`let mut result = T::ZERO;
`
148
``
`-
let mut digit_count = 0;
`
149
``
`-
let has_leading_zero = p.peek_char() == Some('0');
`
150
140
``
151
141
`while let Some(digit) = p.read_atomically(|p| p.read_char()?.to_digit(radix)) {
`
152
142
` result = result.checked_mul(radix)?;
`
153
143
` result = result.checked_add(digit)?;
`
154
144
` digit_count += 1;
`
155
145
`}
`
156
146
``
157
``
`-
if digit_count == 0 {
`
158
``
`-
None
`
159
``
`-
} else if !allow_zero_prefix && has_leading_zero && digit_count > 1 {
`
160
``
`-
None
`
161
``
`-
} else {
`
162
``
`-
Some(result)
`
163
``
`-
}
`
164
``
`-
})
`
165
``
`-
}
`
``
147
`+
Some(result)
`
``
148
`+
};
`
``
149
+
``
150
`+
if digit_count == 0 {
`
``
151
`+
None
`
``
152
`+
} else if !allow_zero_prefix && has_leading_zero && digit_count > 1 {
`
``
153
`+
None
`
``
154
`+
} else {
`
``
155
`+
result
`
``
156
`+
}
`
``
157
`+
})
`
166
158
`}
`
167
159
``
168
160
`/// Reads an IPv4 address.
`