Total Complexity | 1 |
Total Lines | 24 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | # Copyright Pincer 2021-Present |
||
|
|||
2 | # Full MIT License can be found in `LICENSE` at the project root. |
||
3 | |||
4 | from __future__ import annotations |
||
5 | |||
6 | from typing import TYPE_CHECKING |
||
7 | |||
8 | if TYPE_CHECKING: |
||
9 | from typing import Union |
||
10 | from .snowflake import Snowflake |
||
11 | |||
12 | |||
13 | def calculate_shard_id(guild_id: Union[Snowflake, int], num_shards: int) -> int: |
||
14 | """Calculates the shard receiving the events for a specified guild |
||
15 | |||
16 | Parameters |
||
17 | ---------- |
||
18 | guild_id : Optional[~pincer.utils.snowflake.Snowflake] |
||
19 | The guild_id of the shard to look for |
||
20 | num_shards : Optional[int] |
||
21 | The number of shards. |
||
22 | """ |
||
23 | return (guild_id >> 22) % num_shards |
||
24 |