Trait UserInfoWriter 
Source pub trait UserInfoWriter: Send + Sync {
    // Required methods
    fn create_user<'life0, 'async_trait>(
        &'life0 self,
        user_info: UserInfo,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn drop_user<'life0, 'async_trait>(
        &'life0 self,
        id: u32,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn update_user<'life0, 'async_trait>(
        &'life0 self,
        user: UserInfo,
        update_fields: Vec<UpdateField>,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn grant_privilege<'life0, 'async_trait>(
        &'life0 self,
        users: Vec<u32>,
        privileges: Vec<GrantPrivilege>,
        with_grant_option: bool,
        grantor: u32,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn revoke_privilege<'life0, 'async_trait>(
        &'life0 self,
        users: Vec<u32>,
        privileges: Vec<GrantPrivilege>,
        granted_by: u32,
        revoke_by: u32,
        revoke_grant_option: bool,
        cascade: bool,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn alter_default_privilege<'life0, 'async_trait>(
        &'life0 self,
        users: Vec<u32>,
        database_id: u32,
        schemas: Vec<u32>,
        operation: AlterDefaultPrivilegeOperation,
        granted_by: u32,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}