[]Struct matrix_sdk_base::push::Ruleset

#[non_exhaustive]pub struct Ruleset {
    pub content: BTreeSet<ContentPushRule>,
    pub override_: BTreeSet<OverridePushRule>,
    pub room: BTreeSet<RoomPushRule>,
    pub sender: BTreeSet<SenderPushRule>,
    pub underride: BTreeSet<UnderridePushRule>,
}

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 (Non-exhaustive)

Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
content: BTreeSet<ContentPushRule>

These rules configure behavior for (unencrypted) messages that match certain patterns.

override_: BTreeSet<OverridePushRule>

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: BTreeSet<RoomPushRule>

These rules change the behavior of all messages for a given room.

sender: BTreeSet<SenderPushRule>

These rules configure notification behavior for messages from a specific Matrix user ID.

underride: BTreeSet<UnderridePushRule>

These rules are identical to override rules, but have a lower priority than content, room and sender rules.

Implementations

impl Ruleset

pub fn server_default(user_id: &UserId) -> Ruleset

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).

impl Ruleset

pub fn new() -> Ruleset

Creates an empty Ruleset.

pub fn add<R>(&mut self, rule: R) -> bool where
    R: RulesetMember

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.

Trait Implementations

impl Clone for Ruleset

impl Debug for Ruleset

impl Default for Ruleset

impl<'de> Deserialize<'de> for Ruleset

impl Extend<ContentPushRule> for Ruleset

impl Extend<OverridePushRule> for Ruleset

impl Extend<RoomPushRule> for Ruleset

impl Extend<SenderPushRule> for Ruleset

impl Extend<UnderridePushRule> for Ruleset

impl IntoIterator for Ruleset

type Item = AnyPushRule

The type of the elements being iterated over.

type IntoIter = RulesetIter

Which kind of iterator are we turning this into?

impl Serialize for Ruleset

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> AsyncTraitDeps for T where
    T: Send + Sync + Debug
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Conv for T

impl<T> Conv for T

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> FmtForward for T

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pipe for T where
    T: ?Sized

impl<T> Pipe for T

impl<T> PipeAsRef for T

impl<T> PipeBorrow for T

impl<T> PipeDeref for T

impl<T> PipeRef for T

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> Tap for T

impl<T> Tap for T

impl<T, U> TapAsRef<U> for T where
    U: ?Sized

impl<T, U> TapBorrow<U> for T where
    U: ?Sized

impl<T> TapDeref for T

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> TryConv for T

impl<T> TryConv for T

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,