@@ -85,9 +85,11 @@ Callbacks used to query the implementation-specific DOM
85
85
*/
86
86
pub trait SelectHandler < N > {
87
87
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 ;
88
89
fn with_node_id < R > ( & self , node : & N , f : & fn ( Option < & str > ) -> R ) -> R ;
89
90
fn named_parent_node ( & self , node : & N , name : & str ) -> Option < N > ;
90
91
fn parent_node ( & self , node : & N ) -> Option < N > ;
92
+ fn node_has_class ( & self , node : & N , & str ) -> bool ;
91
93
fn node_has_id ( & self , node : & N , & str ) -> bool ;
92
94
fn named_ancestor_node ( & self , node : & N , name : & str ) -> Option < N > ;
93
95
fn node_is_root ( & self , node : & N ) -> bool ;
@@ -113,6 +115,21 @@ impl<N, H: SelectHandler<N>> n::s::CssSelectHandler<N> for SelectHandlerWrapper<
113
115
}
114
116
}
115
117
118
+ fn node_classes ( & self , node : & N ) -> Option < ~[ LwcString ] > {
119
+ do self . inner_ref ( ) . with_node_classes ( node) |node_classes_opt| {
120
+ do node_classes_opt. map |s| {
121
+ debug ! ( "SelectHandlerWrapper::node_classes - classes: %?" , * s) ;
122
+ let mut v = ~[ ] ;
123
+ for str:: each_split_char( * s, ' ' ) |s| {
124
+ debug ! ( "SelectHandlerWrapper::node_classes - class: %?" , s) ;
125
+ if s != ~"" { v. push ( lwcstr_from_rust_str ( s) ) }
126
+ }
127
+ debug ! ( "SelectHandlerWrapper::classes: %?" , v) ;
128
+ v
129
+ }
130
+ }
131
+ }
132
+
116
133
fn node_id ( & self , node : & N ) -> Option < LwcString > {
117
134
do self . inner_ref ( ) . with_node_id ( node) |node_id_opt| {
118
135
node_id_opt. map ( |s| lwcstr_from_rust_str ( * s) )
@@ -127,6 +144,10 @@ impl<N, H: SelectHandler<N>> n::s::CssSelectHandler<N> for SelectHandlerWrapper<
127
144
self . inner_ref ( ) . parent_node ( node)
128
145
}
129
146
147
+ fn node_has_class ( & self , node : & N , name : LwcString ) -> bool {
148
+ self . inner_ref ( ) . node_has_class ( node, name. to_str_slice ( ) )
149
+ }
150
+
130
151
fn node_has_id ( & self , node : & N , name : LwcString ) -> bool {
131
152
self . inner_ref ( ) . node_has_id ( node, name. to_str_slice ( ) )
132
153
}
0 commit comments