aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-external-packages/src/react/promise
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe-external-packages/src/react/promise')
-rw-r--r--crates/shirabe-external-packages/src/react/promise/mod.rs6
-rw-r--r--crates/shirabe-external-packages/src/react/promise/promise.rs14
2 files changed, 12 insertions, 8 deletions
diff --git a/crates/shirabe-external-packages/src/react/promise/mod.rs b/crates/shirabe-external-packages/src/react/promise/mod.rs
index 146c2f1..5f1195f 100644
--- a/crates/shirabe-external-packages/src/react/promise/mod.rs
+++ b/crates/shirabe-external-packages/src/react/promise/mod.rs
@@ -1,13 +1,13 @@
pub mod promise;
pub mod promise_interface;
-use self::promise::Promise;
+use self::promise_interface::PromiseInterface;
use shirabe_php_shim::PhpMixed;
-pub fn resolve(_value: Option<PhpMixed>) -> Promise {
+pub fn resolve(_value: Option<PhpMixed>) -> Box<dyn PromiseInterface> {
todo!()
}
-pub fn all(_promises: Vec<Promise>) -> Promise {
+pub fn all(_promises: Vec<Box<dyn PromiseInterface>>) -> Box<dyn PromiseInterface> {
todo!()
}
diff --git a/crates/shirabe-external-packages/src/react/promise/promise.rs b/crates/shirabe-external-packages/src/react/promise/promise.rs
index 96fa3ed..9407b57 100644
--- a/crates/shirabe-external-packages/src/react/promise/promise.rs
+++ b/crates/shirabe-external-packages/src/react/promise/promise.rs
@@ -1,5 +1,7 @@
use shirabe_php_shim::PhpMixed;
+use super::promise_interface::PromiseInterface;
+
#[derive(Debug)]
pub struct Promise;
@@ -11,12 +13,14 @@ impl Promise {
) -> Self {
todo!()
}
+}
- pub fn then<F, G>(self, _on_fulfilled: Option<F>, _on_rejected: Option<G>) -> Self
- where
- F: FnOnce(Option<PhpMixed>) -> Option<PhpMixed>,
- G: FnOnce(Option<PhpMixed>) -> Option<PhpMixed>,
- {
+impl PromiseInterface for Promise {
+ fn then(
+ &self,
+ _on_fulfilled: Option<Box<dyn FnOnce(Option<PhpMixed>) -> Option<PhpMixed>>>,
+ _on_rejected: Option<Box<dyn FnOnce(Option<PhpMixed>) -> Option<PhpMixed>>>,
+ ) -> Box<dyn PromiseInterface> {
todo!()
}
}