script/dom/
processinginstruction.rs1use dom_struct::dom_struct;
6
7use crate::dom::bindings::codegen::Bindings::ProcessingInstructionBinding::ProcessingInstructionMethods;
8use crate::dom::bindings::root::DomRoot;
9use crate::dom::bindings::str::DOMString;
10use crate::dom::characterdata::CharacterData;
11use crate::dom::document::Document;
12use crate::dom::node::Node;
13
14#[dom_struct]
16pub(crate) struct ProcessingInstruction {
17 characterdata: CharacterData,
18 target: DOMString,
19}
20
21impl ProcessingInstruction {
22 fn new_inherited(
23 target: DOMString,
24 data: DOMString,
25 document: &Document,
26 ) -> ProcessingInstruction {
27 ProcessingInstruction {
28 characterdata: CharacterData::new_inherited(data, document),
29 target,
30 }
31 }
32
33 pub(crate) fn new(
34 cx: &mut js::context::JSContext,
35 target: DOMString,
36 data: DOMString,
37 document: &Document,
38 ) -> DomRoot<ProcessingInstruction> {
39 Node::reflect_node(
40 cx,
41 Box::new(ProcessingInstruction::new_inherited(target, data, document)),
42 document,
43 )
44 }
45}
46
47impl ProcessingInstruction {
48 pub(crate) fn target(&self) -> &DOMString {
49 &self.target
50 }
51}
52
53impl ProcessingInstructionMethods<crate::DomTypeHolder> for ProcessingInstruction {
54 fn Target(&self) -> DOMString {
56 self.target.clone()
57 }
58}