diff options
Diffstat (limited to 'components/script/dom/blob.rs')
-rw-r--r-- | components/script/dom/blob.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index 231216815f4..7e2d539d163 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -9,6 +9,8 @@ use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::bindings::error::Fallible; use dom::bindings::codegen::Bindings::BlobBinding; use dom::bindings::codegen::Bindings::BlobBinding::BlobMethods; +use std::sync::mpsc; +use std::sync::mpsc::Receiver; use util::str::DOMString; @@ -79,6 +81,22 @@ impl Blob { } } +pub trait BlobHelpers { + fn read_out_buffer(self) -> Receiver<Vec<u8>>; + fn read_out_type(self) -> DOMString; +} + +impl<'a> BlobHelpers for &'a Blob { + fn read_out_buffer(self) -> Receiver<Vec<u8>> { + let (send, recv) = mpsc::channel(); + send.send(self.bytes.clone().unwrap_or(vec![])).unwrap(); + recv + } + fn read_out_type(self) -> DOMString { + self.typeString.clone() + } +} + impl<'a> BlobMethods for &'a Blob { // http://dev.w3.org/2006/webapi/FileAPI/#dfn-size fn Size(self) -> u64{ |