summaryrefslogtreecommitdiff
path: root/src/tg/keyboard-button.lisp
blob: 893c9a501972f93a280ddeaf8c284fc62fb2a18d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
;; SPDX-License-Identifier: EUPL-1.2
;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs <perkontevs@gmail.com>
(defpackage :ukkoclot/src/tg/keyboard-button
  (:documentation "KeyboardButton Telegram type")
  (:use
   :c2cl
   :ukkoclot/src/tg/keyboard-button-poll-type
   :ukkoclot/src/tg/keyboard-button-request-chat
   :ukkoclot/src/tg/keyboard-button-request-users
   :ukkoclot/src/tg/type-macros
   :ukkoclot/src/tg/web-app-info)
  (:export
   #:keyboard-button
   #:make-keyboard-button
   #:keyboard-button-p
   #:copy-keyboard-button
   #:keyboard-button-text
   #:keyboard-button-request-users
   #:keyboard-button-request-chat
   #:keyboard-button-request-contact
   #:keyboard-button-request-location
   #:keyboard-button-request-poll
   #:keyboard-button-web-app))
(in-package :ukkoclot/src/tg/keyboard-button)

(define-tg-type keyboard-button
  (text string)
  (request-users (or keyboard-button-request-users null) nil)
  (request-chat (or keyboard-button-request-chat null) nil)
  (request-contact boolean nil)
  (request-location boolean nil)
  (request-poll (or keyboard-button-poll-type null) nil)
  (web-app (or web-app-info null) nil))