INNER CODE UNIT · Rust
get_first_element_by_class_name
FooIbar/EhViewer · app/src/main/rust/src/lib.rs:28
fn get_first_element_by_class_name<'a>(
node: &'a Node,
parser: &'a Parser,
id: &str,
) -> Option<&'a Node<'a>> {
let handle = node.find_node(parser, &mut |n| match n.as_tag() {
None => false,
Some(tag) => tag.attributes().is_class_member(id),
})?;
handle.get(parser)
}
// tl does not support selecting child elements
// Workaround for https://github.com/y21/tl/issues/22
fn select_first<'a>(tag: &'a HTMLTag, parser: &'a Parser, id: &str) -> Option<&'a HTMLTag<'a>> {
for n in tag.children().top().iter() {
let tag = n.get(parser).and_then(Node::as_tag);
if tag.is_some_and(|t| t.name() == id) {