summaryrefslogtreecommitdiff
path: root/macros/src/capability.rs
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src/capability.rs')
-rw-r--r--macros/src/capability.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/macros/src/capability.rs b/macros/src/capability.rs
new file mode 100644
index 00000000..7dd4c42a
--- /dev/null
+++ b/macros/src/capability.rs
@@ -0,0 +1,10 @@
+use super::*;
+
+/// Expand the `#[capability]` macro.
+pub fn expand(body: syn::ItemTrait) -> Result<TokenStream> {
+ let ident = &body.ident;
+ Ok(quote! {
+ #body
+ impl ::typst::model::Capability for dyn #ident {}
+ })
+}