diff options
| author | Laurenz <laurmaedje@gmail.com> | 2020-01-06 12:41:42 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2020-01-06 12:41:42 +0100 |
| commit | 2ee5810fecb96a8d4e0d078faecc8c91096d6881 (patch) | |
| tree | 702c746a3021f5034e1b31cd07e8fadba0e4dd7a /src/func/macros.rs | |
| parent | bd384a2a633e21cd7deff7ed2a29a9c03a63a20e (diff) | |
Asyncify font loading 🪐
Diffstat (limited to 'src/func/macros.rs')
| -rw-r--r-- | src/func/macros.rs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/func/macros.rs b/src/func/macros.rs index 2da219bc..a89156b7 100644 --- a/src/func/macros.rs +++ b/src/func/macros.rs @@ -108,9 +108,20 @@ macro_rules! function { // (2-arg) Parse a layout-definition with all arguments. (@layout $type:ident | layout($this:ident, $ctx:pat) $code:block) => { - impl $crate::func::LayoutFunc for $type { - fn layout(&$this, $ctx: LayoutContext) -> LayoutResult<Commands> { - Ok($code) + impl LayoutFunc for $type { + fn layout<'a, 'life0, 'life1, 'async_trait>( + &'a $this, + $ctx: LayoutContext<'life0, 'life1> + ) -> std::pin::Pin<Box< + dyn std::future::Future<Output = LayoutResult<Commands<'a>>> + 'async_trait + >> + where + 'a: 'async_trait, + 'life0: 'async_trait, + 'life1: 'async_trait, + Self: 'async_trait, + { + Box::pin(async move { Ok($code) }) } } }; |
