pub trait AbstractServerMembers: Sync + Send {
Show 15 methods
// Required methods
fn insert_or_merge_member<'life0, 'life1, 'async_trait>(
&'life0 self,
member: &'life1 Member,
) -> Pin<Box<dyn Future<Output = Result<Option<Member>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn fetch_member<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
user_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Member>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn fetch_all_members<'life0, 'life1, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Member>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn fetch_all_members_chunked<'life0, 'life1, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ChunkedServerMembersGenerator>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn fetch_all_members_with_roles<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
roles: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<Member>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn fetch_all_members_with_roles_chunked<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
roles: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<ChunkedServerMembersGenerator>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn fetch_all_memberships<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Member>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn fetch_members<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
ids: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<Member>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn fetch_member_count<'life0, 'life1, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn fetch_server_count<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn update_member<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 MemberCompositeKey,
partial: &'life2 PartialMember,
remove: Vec<FieldsMember>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn soft_delete_member<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 MemberCompositeKey,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn force_delete_member<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 MemberCompositeKey,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn remove_dangling_members<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn clear_memberships<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
}Required Methods§
Sourcefn insert_or_merge_member<'life0, 'life1, 'async_trait>(
&'life0 self,
member: &'life1 Member,
) -> Pin<Box<dyn Future<Output = Result<Option<Member>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn insert_or_merge_member<'life0, 'life1, 'async_trait>(
&'life0 self,
member: &'life1 Member,
) -> Pin<Box<dyn Future<Output = Result<Option<Member>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Insert a new server member into the database
Sourcefn fetch_member<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
user_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Member>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn fetch_member<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
user_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Member>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Fetch a server member by their id
Sourcefn fetch_all_members<'life0, 'life1, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Member>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_all_members<'life0, 'life1, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Member>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch all members in a server
Sourcefn fetch_all_members_chunked<'life0, 'life1, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ChunkedServerMembersGenerator>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_all_members_chunked<'life0, 'life1, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ChunkedServerMembersGenerator>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch all members in a server as an iterator
fn fetch_all_members_with_roles<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
roles: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<Member>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn fetch_all_members_with_roles_chunked<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
roles: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<ChunkedServerMembersGenerator>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Sourcefn fetch_all_memberships<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Member>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_all_memberships<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Member>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch all memberships for a user
Sourcefn fetch_members<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
ids: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<Member>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn fetch_members<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
ids: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<Member>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Fetch multiple members by their ids
Sourcefn fetch_member_count<'life0, 'life1, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_member_count<'life0, 'life1, 'async_trait>(
&'life0 self,
server_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch member count of a server
Sourcefn fetch_server_count<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_server_count<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch server count of a user
Sourcefn update_member<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 MemberCompositeKey,
partial: &'life2 PartialMember,
remove: Vec<FieldsMember>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn update_member<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 MemberCompositeKey,
partial: &'life2 PartialMember,
remove: Vec<FieldsMember>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Update information for a server member
Sourcefn soft_delete_member<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 MemberCompositeKey,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn soft_delete_member<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 MemberCompositeKey,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Marks a user as no longer a member of a server, while retaining the database value. This is used to keep information such as timeouts in place, but will remove information such as join date and applied roles.
Sourcefn force_delete_member<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 MemberCompositeKey,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn force_delete_member<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 MemberCompositeKey,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Forcibly delete a server member by their id. This will cancel any pending timeouts or other longer term actions, and they will not be reapplied on rejoin.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".