diff options
author | Erik Johnston <erik@matrix.org> | 2022-09-29 16:12:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-29 16:12:09 +0100 |
commit | ebd9e2dac6495a1857617d1a76c9259a988f8bb4 (patch) | |
tree | 4c631115b311c76aa01c0894787b9e5a47062433 /stubs/synapse/synapse_rust | |
parent | Optimise get_rooms_for_user (drop with_stream_ordering) (#13787) (diff) | |
download | synapse-ebd9e2dac6495a1857617d1a76c9259a988f8bb4.tar.xz |
Implement push rule evaluation in Rust. (#13838)
Diffstat (limited to 'stubs/synapse/synapse_rust')
-rw-r--r-- | stubs/synapse/synapse_rust/push.pyi | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/stubs/synapse/synapse_rust/push.pyi b/stubs/synapse/synapse_rust/push.pyi index 93c4e69d42..fffb8419c6 100644 --- a/stubs/synapse/synapse_rust/push.pyi +++ b/stubs/synapse/synapse_rust/push.pyi @@ -1,4 +1,4 @@ -from typing import Any, Collection, Dict, Mapping, Sequence, Tuple, Union +from typing import Any, Collection, Dict, Mapping, Optional, Sequence, Set, Tuple, Union from synapse.types import JsonDict @@ -35,3 +35,20 @@ class FilteredPushRules: def rules(self) -> Collection[Tuple[PushRule, bool]]: ... def get_base_rule_ids() -> Collection[str]: ... + +class PushRuleEvaluator: + def __init__( + self, + flattened_keys: Mapping[str, str], + room_member_count: int, + sender_power_level: Optional[int], + notification_power_levels: Mapping[str, int], + relations: Mapping[str, Set[Tuple[str, str]]], + relation_match_enabled: bool, + ): ... + def run( + self, + push_rules: FilteredPushRules, + user_id: Optional[str], + display_name: Optional[str], + ) -> Collection[dict]: ... |