gloo_file/
file_list.rs

1use crate::blob::File;
2use wasm_bindgen::prelude::*;
3
4/// A list of files, for example from an `<input type="file">`.
5#[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}