aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/blob.rs
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-07-23 14:37:00 -0600
committerbors-servo <metajack+bors@gmail.com>2015-07-23 14:37:00 -0600
commite32068d17bdf6a87a63bea97b6364caa22b37e79 (patch)
treebf247703cebf7e4f5ce1cd9f6ea4c39b3aec5342 /components/script/dom/blob.rs
parentf44d75e5b2e4229728d97b6a70de3babd3496eb1 (diff)
parent27e760e28d4b1fa11a8afdc2f8274058934bf640 (diff)
downloadservo-e32068d17bdf6a87a63bea97b6364caa22b37e79.tar.gz
servo-e32068d17bdf6a87a63bea97b6364caa22b37e79.zip
Auto merge of #6716 - farodin91:filereader, r=jdm
Implement FileReader.{readAsText,readAsDataUrl}. Fixes #6172 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6716) <!-- Reviewable:end -->
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..bfa85bb5784 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<Option<Vec<u8>>> ;
+ fn read_out_type(self) -> DOMString;
+}
+
+impl<'a> BlobHelpers for &'a Blob {
+ fn read_out_buffer(self) -> Receiver<Option<Vec<u8>>> {
+ let (send, recv) = mpsc::channel();
+ send.send(self.bytes.clone()).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{