1use crate::bindings::xmlElementType;
5
6#[derive(Debug, PartialEq, Eq)]
8#[allow(missing_docs)]
9pub enum NodeType {
10 ElementNode,
11 AttributeNode,
12 TextNode,
13 CDataSectionNode,
14 EntityRefNode,
15 EntityNode,
16 PiNode,
17 CommentNode,
18 DocumentNode,
19 DocumentTypeNode,
20 DocumentFragNode,
21 NotationNode,
22 HtmlDocumentNode,
23 DTDNode,
24 ElementDecl,
25 AttributeDecl,
26 EntityDecl,
27 NamespaceDecl,
28 XIncludeStart,
29 XIncludeEnd,
30 DOCBDocumentNode,
31}
32
33impl NodeType {
34 pub fn from_int(i: xmlElementType) -> Option<NodeType> {
37 match i {
38 1 => Some(NodeType::ElementNode),
39 2 => Some(NodeType::AttributeNode),
40 3 => Some(NodeType::TextNode),
41 4 => Some(NodeType::CDataSectionNode),
42 5 => Some(NodeType::EntityRefNode),
43 6 => Some(NodeType::EntityNode),
44 7 => Some(NodeType::PiNode),
45 8 => Some(NodeType::CommentNode),
46 9 => Some(NodeType::DocumentNode),
47 10 => Some(NodeType::DocumentTypeNode),
48 11 => Some(NodeType::DocumentFragNode),
49 12 => Some(NodeType::NotationNode),
50 13 => Some(NodeType::HtmlDocumentNode),
51 14 => Some(NodeType::DTDNode),
52 15 => Some(NodeType::ElementDecl),
53 16 => Some(NodeType::AttributeDecl),
54 17 => Some(NodeType::EntityDecl),
55 18 => Some(NodeType::NamespaceDecl),
56 19 => Some(NodeType::XIncludeStart),
57 20 => Some(NodeType::XIncludeEnd),
58 21 => Some(NodeType::DOCBDocumentNode),
59 _ => None,
60 }
61 }
62}