mirror of
https://github.com/servo/servo.git
synced 2025-07-30 10:40:27 +01:00
Move parse_integer and parse_unsigned_integer from util::str to style::attr
This commit is contained in:
parent
f0d4c03bd9
commit
43d527fcc8
3 changed files with 49 additions and 49 deletions
|
@ -4,7 +4,6 @@
|
|||
|
||||
use app_units::Au;
|
||||
use libc::c_char;
|
||||
use num_lib::ToPrimitive;
|
||||
use std::borrow::ToOwned;
|
||||
use std::convert::AsRef;
|
||||
use std::ffi::CStr;
|
||||
|
@ -174,49 +173,6 @@ pub fn read_numbers<I: Iterator<Item=char>>(mut iter: Peekable<I>) -> Option<i64
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
/// Shared implementation to parse an integer according to
|
||||
/// <https://html.spec.whatwg.org/multipage/#rules-for-parsing-integers> or
|
||||
/// <https://html.spec.whatwg.org/multipage/#rules-for-parsing-non-negative-integers>
|
||||
fn do_parse_integer<T: Iterator<Item=char>>(input: T) -> Option<i64> {
|
||||
let mut input = input.skip_while(|c| {
|
||||
HTML_SPACE_CHARACTERS.iter().any(|s| s == c)
|
||||
}).peekable();
|
||||
|
||||
let sign = match input.peek() {
|
||||
None => return None,
|
||||
Some(&'-') => {
|
||||
input.next();
|
||||
-1
|
||||
},
|
||||
Some(&'+') => {
|
||||
input.next();
|
||||
1
|
||||
},
|
||||
Some(_) => 1,
|
||||
};
|
||||
|
||||
let value = read_numbers(input);
|
||||
|
||||
value.and_then(|value| value.checked_mul(sign))
|
||||
}
|
||||
|
||||
/// Parse an integer according to
|
||||
/// <https://html.spec.whatwg.org/multipage/#rules-for-parsing-integers>.
|
||||
pub fn parse_integer<T: Iterator<Item=char>>(input: T) -> Option<i32> {
|
||||
do_parse_integer(input).and_then(|result| {
|
||||
result.to_i32()
|
||||
})
|
||||
}
|
||||
|
||||
/// Parse an integer according to
|
||||
/// <https://html.spec.whatwg.org/multipage/#rules-for-parsing-non-negative-integers>
|
||||
pub fn parse_unsigned_integer<T: Iterator<Item=char>>(input: T) -> Option<u32> {
|
||||
do_parse_integer(input).and_then(|result| {
|
||||
result.to_u32()
|
||||
})
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, HeapSizeOf, PartialEq)]
|
||||
pub enum LengthOrPercentageOrAuto {
|
||||
Auto,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue