Trait wechaty_grpc::puppet_server::Puppet[][src]

pub trait Puppet: Send + Sync + 'static {
    type EventStream: Stream<Item = Result<EventResponse, Status>> + Send + Sync + 'static;
    type MessageFileStreamStream: Stream<Item = Result<MessageFileStreamResponse, Status>> + Send + Sync + 'static;
    type MessageImageStreamStream: Stream<Item = Result<MessageImageStreamResponse, Status>> + Send + Sync + 'static;
Show 56 methods fn start<'life0, 'async_trait>(
        &'life0 self,
        request: Request<StartRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<StartResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn stop<'life0, 'async_trait>(
        &'life0 self,
        request: Request<StopRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<StopResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn logout<'life0, 'async_trait>(
        &'life0 self,
        request: Request<LogoutRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<LogoutResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn ding<'life0, 'async_trait>(
        &'life0 self,
        request: Request<DingRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<DingResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn version<'life0, 'async_trait>(
        &'life0 self,
        request: Request<VersionRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<VersionResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn event<'life0, 'async_trait>(
        &'life0 self,
        request: Request<EventRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<Self::EventStream>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn dirty_payload<'life0, 'async_trait>(
        &'life0 self,
        request: Request<DirtyPayloadRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<DirtyPayloadResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn contact_self_qr_code<'life0, 'async_trait>(
        &'life0 self,
        request: Request<ContactSelfQrCodeRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<ContactSelfQrCodeResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn contact_self_name<'life0, 'async_trait>(
        &'life0 self,
        request: Request<ContactSelfNameRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<ContactSelfNameResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn contact_self_signature<'life0, 'async_trait>(
        &'life0 self,
        request: Request<ContactSelfSignatureRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<ContactSelfSignatureResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn contact_payload<'life0, 'async_trait>(
        &'life0 self,
        request: Request<ContactPayloadRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<ContactPayloadResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn contact_alias<'life0, 'async_trait>(
        &'life0 self,
        request: Request<ContactAliasRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<ContactAliasResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn contact_avatar<'life0, 'async_trait>(
        &'life0 self,
        request: Request<ContactAvatarRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<ContactAvatarResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn contact_phone<'life0, 'async_trait>(
        &'life0 self,
        request: Request<ContactPhoneRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<ContactPhoneResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn contact_corporation_remark<'life0, 'async_trait>(
        &'life0 self,
        request: Request<ContactCorporationRemarkRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<ContactCorporationRemarkResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn contact_description<'life0, 'async_trait>(
        &'life0 self,
        request: Request<ContactDescriptionRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<ContactDescriptionResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn contact_list<'life0, 'async_trait>(
        &'life0 self,
        request: Request<ContactListRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<ContactListResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn friendship_payload<'life0, 'async_trait>(
        &'life0 self,
        request: Request<FriendshipPayloadRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<FriendshipPayloadResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn friendship_search_phone<'life0, 'async_trait>(
        &'life0 self,
        request: Request<FriendshipSearchPhoneRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<FriendshipSearchPhoneResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn friendship_search_weixin<'life0, 'async_trait>(
        &'life0 self,
        request: Request<FriendshipSearchWeixinRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<FriendshipSearchWeixinResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn friendship_add<'life0, 'async_trait>(
        &'life0 self,
        request: Request<FriendshipAddRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<FriendshipAddResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn friendship_accept<'life0, 'async_trait>(
        &'life0 self,
        request: Request<FriendshipAcceptRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<FriendshipAcceptResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_file<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageFileRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessageFileResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_image<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageImageRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessageImageResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_send_file<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageSendFileRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessageSendFileResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_payload<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessagePayloadRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessagePayloadResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_contact<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageContactRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessageContactResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_file_stream<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageFileStreamRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<Self::MessageFileStreamStream>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_image_stream<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageImageStreamRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<Self::MessageImageStreamStream>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_mini_program<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageMiniProgramRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessageMiniProgramResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_url<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageUrlRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessageUrlResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_recall<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageRecallRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessageRecallResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_forward<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageForwardRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessageForwardResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_send_contact<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageSendContactRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessageSendContactResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_send_file_stream<'life0, 'async_trait>(
        &'life0 self,
        request: Request<Streaming<MessageSendFileStreamRequest>>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessageSendFileStreamResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_send_text<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageSendTextRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessageSendTextResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_send_mini_program<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageSendMiniProgramRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessageSendMiniProgramResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn message_send_url<'life0, 'async_trait>(
        &'life0 self,
        request: Request<MessageSendUrlRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<MessageSendUrlResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_payload<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomPayloadRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomPayloadResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_list<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomListRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomListResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_add<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomAddRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomAddResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_avatar<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomAvatarRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomAvatarResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_create<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomCreateRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomCreateResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_del<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomDelRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomDelResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_quit<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomQuitRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomQuitResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_topic<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomTopicRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomTopicResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_qr_code<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomQrCodeRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomQrCodeResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_announce<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomAnnounceRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomAnnounceResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_member_payload<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomMemberPayloadRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomMemberPayloadResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_member_list<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomMemberListRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomMemberListResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_invitation_payload<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomInvitationPayloadRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomInvitationPayloadResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn room_invitation_accept<'life0, 'async_trait>(
        &'life0 self,
        request: Request<RoomInvitationAcceptRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<RoomInvitationAcceptResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn tag_contact_add<'life0, 'async_trait>(
        &'life0 self,
        request: Request<TagContactAddRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<TagContactAddResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn tag_contact_remove<'life0, 'async_trait>(
        &'life0 self,
        request: Request<TagContactRemoveRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<TagContactRemoveResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn tag_contact_delete<'life0, 'async_trait>(
        &'life0 self,
        request: Request<TagContactDeleteRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<TagContactDeleteResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn tag_contact_list<'life0, 'async_trait>(
        &'life0 self,
        request: Request<TagContactListRequest>
    ) -> Pin<Box<dyn Future<Output = Result<Response<TagContactListResponse>, Status>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
}
Expand description

Generated trait containing gRPC methods that should be implemented for use with PuppetServer.

Associated Types

Server streaming response type for the Event method.

Server streaming response type for the MessageFileStream method.

Server streaming response type for the MessageImageStream method.

Required methods

Base

Event - Server Stream

Contact Self

Contact

Huan(202002): consider changing response to a stream in the future for better performance

Friendship

@deprecated: using MessageFileStream to transfer files Huan(202010): will be removed (replaced by MessageFileStream) after Dec 31, 2021

@deprecated: using MessageImageStream to transfer images Huan(202010): will be removed (replaced by MessageImageStream) after Dec 31, 2021

@deprecated: using MesageSendFileStream to transfer file message to server Huan(202010): will be removed (replaced by MessageSendFileStream) after Dec 31, 2021

Room

Room Member

Room Invitation

Tag

Operate Sub-Collections https://cloud.google.com/apis/design/design_patterns#list_sub-collections

Implementors