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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
use serde::{Deserialize, Serialize};

#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
pub enum Extensions {
    // client methods
    #[doc = include_str!("../../docs/extensions/client_check_v1.md")]
    ClientCheckV1,

    // user methods
    #[doc = include_str!("../../docs/extensions/user_v1.md")]
    UserV1,
    #[doc = include_str!("../../docs/extensions/client_event_v1.md")]
    ClientEventV1,

    // file methods
    #[doc = include_str!("../../docs/extensions/upload_v1.md")]
    UploadV1,

    // room methods
    #[doc = include_str!("../../docs/extensions/room_v1.md")]
    RoomV1,
    #[doc = include_str!("../../docs/extensions/dao_v1.md")]
    DAOV1,

    // message types
    #[doc = include_str!("../../docs/extensions/mmm_v1.md")]
    MultiMediaMessageV1,
    #[doc = include_str!("../../docs/extensions/NFT_stickers_v1.md")]
    NFTStickersV1,

    // message methods
    #[doc = include_str!("../../docs/extensions/RTC_v1.md")]
    RTCV1,

    // login methods
    #[doc = include_str!("../../docs/extensions/pubkey_login.md")]
    PubkeyLoginV1,
    #[doc = include_str!("../../docs/extensions/jwt_login.md")]
    JWTLoginV1,
    #[doc = include_str!("../../docs/extensions/wallet_login.md")]
    WalletLoginV1,

    // backup methods
    #[doc = include_str!("../../docs/extensions/backup_s3.md")]
    BackupS3,
    #[doc = include_str!("../../docs/extensions/backup_arweave.md")]
    BackupArweave,
}

pub mod mmm_v1;
pub mod room_v1;
pub mod upload_v1;
pub mod user_v1;

#[derive(Debug, Serialize, Deserialize)]

pub struct CheckSupportedExtensionsRequest {}

#[derive(Debug, Serialize, Deserialize)]
pub struct CheckSupportedExtensionsResponse {
    pub extensions: Vec<Extensions>,
}