summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibXML/DOM/Node.h
blob: 48a3a6edb3175e282d0bc5d7b9c33740aaae2ea4 (plain)
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
/*
 * Copyright (c) 2022, Ali Mohammad Pur <mpfard@serenityos.org>
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

#pragma once

#include <AK/DeprecatedString.h>
#include <AK/HashMap.h>
#include <AK/NonnullOwnPtrVector.h>
#include <AK/Variant.h>
#include <AK/Vector.h>
#include <LibXML/FundamentalTypes.h>

namespace XML {

struct Attribute {
    Name name;
    DeprecatedString value;
};

struct Node {
    struct Text {
        StringBuilder builder;
    };
    struct Comment {
        DeprecatedString text;
    };
    struct Element {
        Name name;
        HashMap<Name, DeprecatedString> attributes;
        Vector<NonnullOwnPtr<Node>> children;
    };

    bool operator==(Node const&) const;

    Variant<Text, Comment, Element> content;
    Node* parent { nullptr };
};
}