diff options
Diffstat (limited to 'crates/shirabe-external-packages/src/react/promise')
| -rw-r--r-- | crates/shirabe-external-packages/src/react/promise/mod.rs | 6 | ||||
| -rw-r--r-- | crates/shirabe-external-packages/src/react/promise/promise.rs | 14 |
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!() } } |
