summaryrefslogtreecommitdiff
path: root/src/types/message_origin.zig
blob: 96af0763903e6de923ff44a732f180d22a058dcf (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
const json = @import("../json.zig");

const Chat = @import("Chat.zig");
const User = @import("User.zig");

pub const MessageOrigin = union(enum) {
    user: struct {
        date: u64,
        sender_user: User,
    },
    hidden_user: struct {
        date: u64,
        sender_user_name: []const u8,
    },
    chat: struct {
        date: u64,
        sender_chat: Chat,
        author_signature: ?[]const u8 = null,
    },
    channel: struct {
        date: u64,
        chat: Chat,
        message_id: u64,
        author_signature: ?[]const u8 = null,
    },

    pub const jsonParse = json.makeJsonParse(MessageOrigin);
    pub const jsonParseFromValue = json.makeJsonParseFromValue(MessageOrigin);
};