@@ -200,55 +200,12 @@ where
200
200
}
201
201
}
202
202
203
- pub mod regex {
204
- use super :: TopicSubscriptionFilter ;
205
- use crate :: TopicHash ;
206
- use regex:: Regex ;
203
+ ///A subscription filter that filters topics based on a regular expression.
204
+ pub struct RegexSubscriptionFilter ( pub regex:: Regex ) ;
207
205
208
- ///A subscription filter that filters topics based on a regular expression.
209
- pub struct RegexSubscriptionFilter ( pub Regex ) ;
210
-
211
- impl TopicSubscriptionFilter for RegexSubscriptionFilter {
212
- fn can_subscribe ( & mut self , topic_hash : & TopicHash ) -> bool {
213
- self . 0 . is_match ( topic_hash. as_str ( ) )
214
- }
215
- }
216
-
217
- #[ cfg( test) ]
218
- mod test {
219
- use super :: * ;
220
- use crate :: types:: Subscription ;
221
- use crate :: types:: SubscriptionAction :: * ;
222
-
223
- #[ test]
224
- fn test_regex_subscription_filter ( ) {
225
- let t1 = TopicHash :: from_raw ( "tt" ) ;
226
- let t2 = TopicHash :: from_raw ( "et3t3te" ) ;
227
- let t3 = TopicHash :: from_raw ( "abcdefghijklmnopqrsuvwxyz" ) ;
228
-
229
- let mut filter = RegexSubscriptionFilter ( Regex :: new ( "t.*t" ) . unwrap ( ) ) ;
230
-
231
- let old = Default :: default ( ) ;
232
- let subscriptions = vec ! [
233
- Subscription {
234
- action: Subscribe ,
235
- topic_hash: t1,
236
- } ,
237
- Subscription {
238
- action: Subscribe ,
239
- topic_hash: t2,
240
- } ,
241
- Subscription {
242
- action: Subscribe ,
243
- topic_hash: t3,
244
- } ,
245
- ] ;
246
-
247
- let result = filter
248
- . filter_incoming_subscriptions ( & subscriptions, & old)
249
- . unwrap ( ) ;
250
- assert_eq ! ( result, subscriptions[ ..2 ] . iter( ) . collect( ) ) ;
251
- }
206
+ impl TopicSubscriptionFilter for RegexSubscriptionFilter {
207
+ fn can_subscribe ( & mut self , topic_hash : & TopicHash ) -> bool {
208
+ self . 0 . is_match ( topic_hash. as_str ( ) )
252
209
}
253
210
}
254
211
@@ -447,4 +404,34 @@ mod test {
447
404
. unwrap ( ) ;
448
405
assert_eq ! ( result, vec![ & subscriptions[ 0 ] ] . into_iter( ) . collect( ) ) ;
449
406
}
407
+
408
+ #[ test]
409
+ fn test_regex_subscription_filter ( ) {
410
+ let t1 = TopicHash :: from_raw ( "tt" ) ;
411
+ let t2 = TopicHash :: from_raw ( "et3t3te" ) ;
412
+ let t3 = TopicHash :: from_raw ( "abcdefghijklmnopqrsuvwxyz" ) ;
413
+
414
+ let mut filter = RegexSubscriptionFilter ( Regex :: new ( "t.*t" ) . unwrap ( ) ) ;
415
+
416
+ let old = Default :: default ( ) ;
417
+ let subscriptions = vec ! [
418
+ Subscription {
419
+ action: Subscribe ,
420
+ topic_hash: t1,
421
+ } ,
422
+ Subscription {
423
+ action: Subscribe ,
424
+ topic_hash: t2,
425
+ } ,
426
+ Subscription {
427
+ action: Subscribe ,
428
+ topic_hash: t3,
429
+ } ,
430
+ ] ;
431
+
432
+ let result = filter
433
+ . filter_incoming_subscriptions ( & subscriptions, & old)
434
+ . unwrap ( ) ;
435
+ assert_eq ! ( result, subscriptions[ ..2 ] . iter( ) . collect( ) ) ;
436
+ }
450
437
}
0 commit comments