Trait libp2p::gossipsub::TopicSubscriptionFilter

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 { ... }
}
Available on crate feature gossipsub only.

Required Methods§

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§

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.

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.

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.

Implementors§