Skip to content

Commit dfaf60a

Browse files
Re-export subscription filters from root
1 parent dbbf403 commit dfaf60a

File tree

2 files changed

+45
-49
lines changed

2 files changed

+45
-49
lines changed

protocols/gossipsub/src/lib.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,14 @@ pub mod protocol {
158158

159159
mod subscription_filter_priv;
160160
#[deprecated(
161-
note = "The `subscription_filter` module will be made private in the future and should not be depended on."
161+
note = "The `subscription_filter` module will be made private in the future, import the types from the crate root instead."
162162
)]
163163
pub mod subscription_filter {
164164
pub use super::subscription_filter_priv::*;
165+
166+
pub mod regex {
167+
pub use crate::subscription_filter_priv::RegexSubscriptionFilter;
168+
}
165169
}
166170

167171
mod time_cache_priv;
@@ -194,6 +198,11 @@ pub use self::peer_score::{
194198
score_parameter_decay, score_parameter_decay_with_base, PeerScoreParams, PeerScoreThresholds,
195199
TopicScoreParams,
196200
};
201+
pub use self::subscription_filter_priv::{
202+
AllowAllSubscriptionFilter, CallbackSubscriptionFilter, CombinedSubscriptionFilters,
203+
MaxCountSubscriptionFilter, RegexSubscriptionFilter, TopicSubscriptionFilter,
204+
WhitelistSubscriptionFilter,
205+
};
197206
pub use self::topic::{Hasher, Topic, TopicHash};
198207
pub use self::transform::{DataTransform, IdentityTransform};
199208
pub use self::types::{FastMessageId, Message, MessageAcceptance, MessageId, RawMessage, Rpc};

protocols/gossipsub/src/subscription_filter_priv.rs

Lines changed: 35 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -200,55 +200,12 @@ where
200200
}
201201
}
202202

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);
207205

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())
252209
}
253210
}
254211

@@ -447,4 +404,34 @@ mod test {
447404
.unwrap();
448405
assert_eq!(result, vec![&subscriptions[0]].into_iter().collect());
449406
}
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+
}
450437
}

0 commit comments

Comments
 (0)