mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
add webidl bindings for DOMStringList
This commit is contained in:
parent
ec1da1d01c
commit
7e4e48c351
12 changed files with 84 additions and 216 deletions
59
components/script/dom/domstringlist.rs
Normal file
59
components/script/dom/domstringlist.rs
Normal file
|
@ -0,0 +1,59 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crate::dom::bindings::codegen::Bindings::DOMStringListBinding;
|
||||
use crate::dom::bindings::codegen::Bindings::DOMStringListBinding::DOMStringListMethods;
|
||||
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
|
||||
use crate::dom::bindings::root::DomRoot;
|
||||
use crate::dom::bindings::str::DOMString;
|
||||
use crate::dom::window::Window;
|
||||
use dom_struct::dom_struct;
|
||||
|
||||
#[dom_struct]
|
||||
pub struct DOMStringList {
|
||||
reflector_: Reflector,
|
||||
strings: Vec<DOMString>,
|
||||
}
|
||||
|
||||
impl DOMStringList {
|
||||
#[allow(unused)]
|
||||
pub fn new_inherited(strings: Vec<DOMString>) -> DOMStringList {
|
||||
DOMStringList {
|
||||
reflector_: Reflector::new(),
|
||||
strings,
|
||||
}
|
||||
}
|
||||
|
||||
#[allow(unused)]
|
||||
pub fn new(window: &Window, strings: Vec<DOMString>) -> DomRoot<DOMStringList> {
|
||||
reflect_dom_object(
|
||||
Box::new(DOMStringList::new_inherited(strings)),
|
||||
window,
|
||||
DOMStringListBinding::Wrap,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#domstringlist
|
||||
impl DOMStringListMethods for DOMStringList {
|
||||
// https://html.spec.whatwg.org/multipage/#dom-domstringlist-length
|
||||
fn Length(&self) -> u32 {
|
||||
self.strings.len() as u32
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-domstringlist-item
|
||||
fn Item(&self, index: u32) -> Option<DOMString> {
|
||||
self.strings.get(index as usize).cloned()
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-domstringlist-contains
|
||||
fn Contains(&self, string: DOMString) -> bool {
|
||||
self.strings.contains(&string)
|
||||
}
|
||||
|
||||
// check-tidy: no specs after this line
|
||||
fn IndexedGetter(&self, index: u32) -> Option<DOMString> {
|
||||
self.Item(index)
|
||||
}
|
||||
}
|
|
@ -293,6 +293,7 @@ pub mod dompointreadonly;
|
|||
pub mod domquad;
|
||||
pub mod domrect;
|
||||
pub mod domrectreadonly;
|
||||
pub mod domstringlist;
|
||||
pub mod domstringmap;
|
||||
pub mod domtokenlist;
|
||||
pub mod element;
|
||||
|
|
18
components/script/dom/webidls/DOMStringList.webidl
Normal file
18
components/script/dom/webidls/DOMStringList.webidl
Normal file
|
@ -0,0 +1,18 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
/*
|
||||
* The origin of this IDL file is
|
||||
* https://html.spec.whatwg.org/multipage/#domstringlist
|
||||
*
|
||||
* Copyright:
|
||||
* To the extent possible under law, the editors have waived all copyright and
|
||||
* related or neighboring rights to this work.
|
||||
*/
|
||||
|
||||
[Exposed=(Window,Worker)]
|
||||
interface DOMStringList {
|
||||
readonly attribute unsigned long length;
|
||||
getter DOMString? item(unsigned long index);
|
||||
boolean contains(DOMString string);
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue