Skip to content
Prev Previous commit
Next Next commit
Address code review
  • Loading branch information
vimpunk authored and SimonSapin committed Apr 24, 2019
commit 831f795f9edf7575291579e539ed289b838c2b00
35 changes: 14 additions & 21 deletions src/from_bytes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,30 +38,23 @@ where
E: EncodingSupport,
{
// https://drafts.csswg.org/css-syntax/#the-input-byte-stream
match protocol_encoding_label {
None => (),
Some(label) => match E::from_label(label) {
None => (),
Some(protocol_encoding) => return protocol_encoding,
},
}
if let Some(label) = protocol_encoding_label {
if let Some(protocol_encoding) = E::from_label(label) {
return protocol_encoding;
};
};

let prefix = b"@charset \"";
if css.starts_with(prefix) {
let rest = &css[prefix.len()..];
match rest.iter().position(|&b| b == b'"') {
None => (),
Some(label_length) => {
if rest[label_length..].starts_with(b"\";") {
let label = &rest[..label_length];
match E::from_label(label) {
None => (),
Some(charset_encoding) => {
if E::is_utf16_be_or_le(&charset_encoding) {
return E::utf8();
} else {
return charset_encoding;
}
}
if let Some(label_length) = rest.iter().position(|&b| b == b'"') {
if rest[label_length..].starts_with(b"\";") {
let label = &rest[..label_length];
if let Some(charset_encoding) = E::from_label(label) {
if E::is_utf16_be_or_le(&charset_encoding) {
return E::utf8();
} else {
return charset_encoding;
}
}
}
Expand Down
4 changes: 1 addition & 3 deletions src/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -354,9 +354,7 @@ impl<'i: 't, 't> Parser<'i, 't> {
..
}) => Ok(()),
Err(e) => unreachable!("Unexpected error encountered: {:?}", e),
Ok(t) => Err(start
.source_location()
.new_basic_unexpected_token_error(t.clone())),
Ok(t) => Err(start.source_location().new_basic_unexpected_token_error(t.clone())),
};
self.reset(&start);
result
Expand Down