Skip to content
This repository was archived by the owner on Jul 10, 2023. It is now read-only.

Commit e854adf

Browse files
committed
Support css class selection
1 parent e3057f0 commit e854adf

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

select.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ Callbacks used to query the implementation-specific DOM
8585
*/
8686
pub trait SelectHandler<N> {
8787
fn with_node_name<R>(&self, node: &N, f: &fn(&str) -> R) -> R;
88+
fn with_node_classes<R>(&self, node: &N, f: &fn(Option<&str>) -> R) -> R;
8889
fn with_node_id<R>(&self, node: &N, f: &fn(Option<&str>) -> R) -> R;
8990
fn named_parent_node(&self, node: &N, name: &str) -> Option<N>;
9091
fn parent_node(&self, node: &N) -> Option<N>;
@@ -112,6 +113,21 @@ impl<N, H: SelectHandler<N>> n::s::CssSelectHandler<N> for SelectHandlerWrapper<
112113
}
113114
}
114115

116+
fn node_classes(&self, node: &N) -> Option<~[LwcString]> {
117+
do self.inner_ref().with_node_classes(node) |node_classes_opt| {
118+
do node_classes_opt.map |s| {
119+
debug!("SelectHandlerWrapper::node_classes - classes: %?", *s);
120+
let mut v = ~[];
121+
for str::each_split_char(*s, ' ') |s| {
122+
debug!("SelectHandlerWrapper::node_classes - class: %?", s);
123+
if s != ~"" { v.push(lwcstr_from_rust_str(s)) }
124+
}
125+
debug!("SelectHandlerWrapper::classes: %?", v);
126+
v
127+
}
128+
}
129+
}
130+
115131
fn node_id(&self, node: &N) -> Option<LwcString> {
116132
do self.inner_ref().with_node_id(node) |node_id_opt| {
117133
node_id_opt.map(|s| lwcstr_from_rust_str(*s))

0 commit comments

Comments
 (0)