summaryrefslogtreecommitdiff
path: root/crates/typst-macros
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2024-01-17 14:51:42 +0100
committerLaurenz <laurmaedje@gmail.com>2024-01-17 17:32:51 +0100
commitcb69648e2f048e90ca819e147927a00831cef119 (patch)
tree0c006a467d25c5c65cbf6bec6f987ecd8b2e7dba /crates/typst-macros
parent21585e03cfcc47ad283c162e4a2959ea5f8fbd6f (diff)
Add a few manual Debug impls to elements
Diffstat (limited to 'crates/typst-macros')
-rw-r--r--crates/typst-macros/src/elem.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/crates/typst-macros/src/elem.rs b/crates/typst-macros/src/elem.rs
index 6ab437cd..441cb4ad 100644
--- a/crates/typst-macros/src/elem.rs
+++ b/crates/typst-macros/src/elem.rs
@@ -322,10 +322,12 @@ fn create(element: &Elem) -> Result<TokenStream> {
let partial_eq_impl =
element.unless_capability("PartialEq", || create_partial_eq_impl(element));
let repr_impl = element.unless_capability("Repr", || create_repr_impl(element));
+ let derive_debug = element.unless_capability("Debug", || quote! { #[derive(Debug)] });
Ok(quote! {
#[doc = #docs]
- #[derive(Debug, Clone, Hash)]
+ #derive_debug
+ #[derive(Clone, Hash)]
#[allow(clippy::derived_hash_with_manual_eq)]
#vis struct #ident {
#(#fields,)*
@@ -974,7 +976,8 @@ fn create_repr_impl(element: &Elem) -> TokenStream {
/// Creates the element's casting vtable.
fn create_capable_impl(element: &Elem) -> TokenStream {
// Forbidden capabilities (i.e capabilities that are not object safe).
- const FORBIDDEN: &[&str] = &["Construct", "PartialEq", "Hash", "LocalName", "Repr"];
+ const FORBIDDEN: &[&str] =
+ &["Construct", "PartialEq", "Hash", "LocalName", "Repr", "Debug"];
let ident = &element.ident;
let relevant = element