MessagePredicate

Type Alias MessagePredicate 

Source
pub type MessagePredicate = Arc<dyn Fn(&Value) -> bool + Send + Sync>;
Expand description

Message predicate function type

Receives the entire message object (as serde_json::Value) and returns:

  • true to accept the message (continue processing)
  • false to reject the message (drop silently)

The predicate is called after signature verification but before message processing. This allows the application layer to implement custom message filtering logic, such as:

  • Filtering messages based on content
  • Implementing rate limiting
  • Enforcing access control policies
  • Blocking specific message types

§Example

use gun::MessagePredicate;
use std::sync::Arc;
 
// Only accept "put" messages
let predicate: MessagePredicate = Arc::new(|msg| {
    msg.get("put").is_some()
});

Aliased Type§

pub struct MessagePredicate { /* private fields */ }