Struct ruma_common::push::Ruleset
source · [−]pub struct Ruleset {
pub content: IndexSet<PatternedPushRule>,
pub override_: IndexSet<ConditionalPushRule>,
pub room: IndexSet<SimplePushRule>,
pub sender: IndexSet<SimplePushRule>,
pub underride: IndexSet<ConditionalPushRule>,
}
Expand description
A push ruleset scopes a set of rules according to some criteria.
For example, some rules may only be applied for messages from a particular sender, a particular room, or by default. The push ruleset contains the entire set of scopes and rules.
Fields
content: IndexSet<PatternedPushRule>
These rules configure behavior for (unencrypted) messages that match certain patterns.
override_: IndexSet<ConditionalPushRule>
These user-configured rules are given the highest priority.
This field is named override_
instead of override
because the latter is a reserved
keyword in Rust.
room: IndexSet<SimplePushRule>
These rules change the behavior of all messages for a given room.
sender: IndexSet<SimplePushRule>
These rules configure notification behavior for messages from a specific Matrix user ID.
underride: IndexSet<ConditionalPushRule>
These rules are identical to override rules, but have a lower priority than content
,
room
and sender
rules.
Implementations
sourceimpl Ruleset
impl Ruleset
sourcepub fn server_default(user_id: &UserId) -> Self
pub fn server_default(user_id: &UserId) -> Self
The list of all predefined push rules.
Parameters
user_id
: the user for which to generate the default rules. Some rules depend on the user’s ID (for instance those to send notifications when they are mentioned).
sourceimpl Ruleset
impl Ruleset
sourcepub fn iter(&self) -> RulesetIter<'_>ⓘNotable traits for RulesetIter<'a>impl<'a> Iterator for RulesetIter<'a> type Item = AnyPushRuleRef<'a>;
pub fn iter(&self) -> RulesetIter<'_>ⓘNotable traits for RulesetIter<'a>impl<'a> Iterator for RulesetIter<'a> type Item = AnyPushRuleRef<'a>;
Creates a borrowing iterator over all push rules in this Ruleset
.
For an owning iterator, use .into_iter()
.
sourcepub fn add(&mut self, rule: AnyPushRule) -> bool
pub fn add(&mut self, rule: AnyPushRule) -> bool
Adds a rule to the rule set.
Returns true
if the new rule was correctly added, and false
if a rule with the same rule_id
is already present for this kind
of rule.
sourcepub fn get_match<T>(
&self,
event: &Raw<T>,
context: &PushConditionRoomCtx
) -> Option<AnyPushRuleRef<'_>>
pub fn get_match<T>(
&self,
event: &Raw<T>,
context: &PushConditionRoomCtx
) -> Option<AnyPushRuleRef<'_>>
Get the first push rule that applies to this event, if any.
Arguments
event
- The raw JSON of a room message event.context
- The context of the message and room at the time of the event.
sourcepub fn get_actions<T>(
&self,
event: &Raw<T>,
context: &PushConditionRoomCtx
) -> &[Action]
pub fn get_actions<T>(
&self,
event: &Raw<T>,
context: &PushConditionRoomCtx
) -> &[Action]
Get the push actions that apply to this event.
Returns an empty slice if no push rule applies.
Arguments
event
- The raw JSON of a room message event.context
- The context of the message and room at the time of the event.
Trait Implementations
sourceimpl<'de> Deserialize<'de> for Ruleset
impl<'de> Deserialize<'de> for Ruleset
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
sourceimpl Extend<AnyPushRule> for Ruleset
impl Extend<AnyPushRule> for Ruleset
sourcefn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = AnyPushRule>,
fn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = AnyPushRule>,
sourcefn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)sourcefn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)sourceimpl From<Ruleset> for PushRulesEventContent
Available on crate feature events
only.
impl From<Ruleset> for PushRulesEventContent
events
only.