1use crate::blob::File;
2use wasm_bindgen::prelude::*;
3
4#[derive(Debug, Clone, PartialEq, Eq)]
6pub struct FileList {
7 inner: Vec<File>,
8}
9
10impl From<web_sys::FileList> for FileList {
11 fn from(raw: web_sys::FileList) -> Self {
12 let length = raw.length();
13
14 let inner = (0..length)
15 .map(|i| File::from(raw.get(i).unwrap_throw()))
16 .collect();
17
18 FileList { inner }
19 }
20}
21
22impl std::ops::Deref for FileList {
23 type Target = [File];
24
25 fn deref(&self) -> &Self::Target {
26 &self.inner
27 }
28}