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:
trueto accept the message (continue processing)falseto 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 */ }