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;
13use crate::script_runtime::CanGc;
14
15#[dom_struct]
17pub(crate) struct ProcessingInstruction {
18 characterdata: CharacterData,
19 target: DOMString,
20}
21
22impl ProcessingInstruction {
23 fn new_inherited(
24 target: DOMString,
25 data: DOMString,
26 document: &Document,
27 ) -> ProcessingInstruction {
28 ProcessingInstruction {
29 characterdata: CharacterData::new_inherited(data, document),
30 target,
31 }
32 }
33
34 pub(crate) fn new(
35 target: DOMString,
36 data: DOMString,
37 document: &Document,
38 can_gc: CanGc,
39 ) -> DomRoot<ProcessingInstruction> {
40 Node::reflect_node(
41 Box::new(ProcessingInstruction::new_inherited(target, data, document)),
42 document,
43 can_gc,
44 )
45 }
46}
47
48impl ProcessingInstruction {
49 pub(crate) fn target(&self) -> &DOMString {
50 &self.target
51 }
52}
53
54impl ProcessingInstructionMethods<crate::DomTypeHolder> for ProcessingInstruction {
55 fn Target(&self) -> DOMString {
57 self.target.clone()
58 }
59}