use dom_struct::dom_struct;
use js::rust::HandleObject;
use crate::dom::bindings::codegen::Bindings::CommentBinding::CommentMethods;
use crate::dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
use crate::dom::bindings::error::Fallible;
use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::characterdata::CharacterData;
use crate::dom::document::Document;
use crate::dom::node::Node;
use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct]
pub struct Comment {
characterdata: CharacterData,
}
impl Comment {
fn new_inherited(text: DOMString, document: &Document) -> Comment {
Comment {
characterdata: CharacterData::new_inherited(text, document),
}
}
pub fn new(
text: DOMString,
document: &Document,
proto: Option<HandleObject>,
can_gc: CanGc,
) -> DomRoot<Comment> {
Node::reflect_node_with_proto(
Box::new(Comment::new_inherited(text, document)),
document,
proto,
can_gc,
)
}
}
impl CommentMethods<crate::DomTypeHolder> for Comment {
fn Constructor(
window: &Window,
proto: Option<HandleObject>,
can_gc: CanGc,
data: DOMString,
) -> Fallible<DomRoot<Comment>> {
let document = window.Document();
Ok(Comment::new(data, &document, proto, can_gc))
}
}