pub trait TopicSubscriptionFilter {
    // Required method
    fn can_subscribe(&mut self, topic_hash: &TopicHash) -> bool;
    // Provided methods
    fn filter_incoming_subscriptions<'a>(
        &mut self,
        subscriptions: &'a [Subscription],
        currently_subscribed_topics: &BTreeSet<TopicHash>,
    ) -> Result<HashSet<&'a Subscription>, String> { ... }
    fn filter_incoming_subscription_set<'a>(
        &mut self,
        subscriptions: HashSet<&'a Subscription>,
        _currently_subscribed_topics: &BTreeSet<TopicHash>,
    ) -> Result<HashSet<&'a Subscription>, String> { ... }
    fn allow_incoming_subscription(
        &mut self,
        subscription: &Subscription,
    ) -> bool { ... }
}Required Methods§
Sourcefn can_subscribe(&mut self, topic_hash: &TopicHash) -> bool
 
fn can_subscribe(&mut self, topic_hash: &TopicHash) -> bool
Returns true iff the topic is of interest and we can subscribe to it.
Provided Methods§
Sourcefn filter_incoming_subscriptions<'a>(
    &mut self,
    subscriptions: &'a [Subscription],
    currently_subscribed_topics: &BTreeSet<TopicHash>,
) -> Result<HashSet<&'a Subscription>, String>
 
fn filter_incoming_subscriptions<'a>( &mut self, subscriptions: &'a [Subscription], currently_subscribed_topics: &BTreeSet<TopicHash>, ) -> Result<HashSet<&'a Subscription>, String>
Filters a list of incoming subscriptions and returns a filtered set
By default this deduplicates the subscriptions and calls
Self::filter_incoming_subscription_set on the filtered set.
Sourcefn filter_incoming_subscription_set<'a>(
    &mut self,
    subscriptions: HashSet<&'a Subscription>,
    _currently_subscribed_topics: &BTreeSet<TopicHash>,
) -> Result<HashSet<&'a Subscription>, String>
 
fn filter_incoming_subscription_set<'a>( &mut self, subscriptions: HashSet<&'a Subscription>, _currently_subscribed_topics: &BTreeSet<TopicHash>, ) -> Result<HashSet<&'a Subscription>, String>
Filters a set of deduplicated subscriptions
By default this filters the elements based on Self::allow_incoming_subscription.
Sourcefn allow_incoming_subscription(&mut self, subscription: &Subscription) -> bool
 
fn allow_incoming_subscription(&mut self, subscription: &Subscription) -> bool
Returns true iff we allow an incoming subscription. This is used by the default implementation of filter_incoming_subscription_set to decide whether to filter out a subscription or not. By default this uses can_subscribe to decide the same for incoming subscriptions as for outgoing ones.