From 643c4ce7ef0cb31ca13499aa5c906136cdd1aa46 Mon Sep 17 00:00:00 2001 From: Sunshine Date: Fri, 3 Apr 2020 00:00:08 -0400 Subject: [PATCH] implement improvements suggested by @robatipoor --- src/html.rs | 13 +++++-------- src/tests/html/get_node_name.rs | 6 +++--- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/html.rs b/src/html.rs index 66b319f..bf4bb7e 100644 --- a/src/html.rs +++ b/src/html.rs @@ -28,18 +28,15 @@ pub fn get_parent_node(node: &Handle) -> Handle { parent.and_then(|node| node.upgrade()).unwrap() } -pub fn get_node_name(node: &Handle) -> &'_ str { +pub fn get_node_name(node: &Handle) -> Option<&'_ str> { match &node.data { - NodeData::Element { ref name, .. } => name.local.as_ref(), - _ => "", + NodeData::Element { ref name, .. } => Some(name.local.as_ref()), + _ => None, } } pub fn is_icon(attr_value: &str) -> bool { - ICON_VALUES - .iter() - .find(|a| attr_value.eq_ignore_ascii_case(a)) - .is_some() + ICON_VALUES.contains(&attr_value.to_lowercase().as_str()) } pub fn walk_and_embed_assets( @@ -310,7 +307,7 @@ pub fn walk_and_embed_assets( attr.value.clear(); attr.value.push_slice(src_full_url.as_str()); } else if attr_name == "srcset" { - if get_node_name(&get_parent_node(&node)) == "picture" { + if get_node_name(&get_parent_node(&node)) == Some("picture") { if opt_no_images { attr.value.clear(); attr.value.push_slice(TRANSPARENT_PIXEL); diff --git a/src/tests/html/get_node_name.rs b/src/tests/html/get_node_name.rs index 2fbdc35..dfd4b08 100644 --- a/src/tests/html/get_node_name.rs +++ b/src/tests/html/get_node_name.rs @@ -28,11 +28,11 @@ fn get_node_name() { let parent = html::get_parent_node(node); let parent_node_name = html::get_node_name(&parent); if node_name == "head" || node_name == "body" { - assert_eq!(parent_node_name, "html"); + assert_eq!(parent_node_name, Some("html")); } else if node_name == "div" { - assert_eq!(parent_node_name, "body"); + assert_eq!(parent_node_name, Some("body")); } else if node_name == "p" { - assert_eq!(parent_node_name, "div"); + assert_eq!(parent_node_name, Some("div")); } for child in node.children.borrow().iter() {