aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/blob.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/blob.rs')
-rw-r--r--components/script/dom/blob.rs18
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{