Add helper for querying derived traits
diff --git a/macro/src/derive.rs b/macro/src/derive.rs
index 87f8ec5..2109a1f 100644
--- a/macro/src/derive.rs
+++ b/macro/src/derive.rs
@@ -1,4 +1,4 @@
-use crate::syntax::{Enum, Struct, Trait};
+use crate::syntax::{derive, Enum, Struct, Trait};
 use proc_macro2::{Ident, Span, TokenStream};
 use quote::{quote, quote_spanned, ToTokens};
 
@@ -59,12 +59,7 @@
 fn struct_clone(strct: &Struct, span: Span) -> TokenStream {
     let ident = &strct.name.rust;
 
-    let is_copy = strct
-        .derives
-        .iter()
-        .any(|derive| derive.what == Trait::Copy);
-
-    let body = if is_copy {
+    let body = if derive::contains(&strct.derives, Trait::Copy) {
         quote!(*self)
     } else {
         let fields = strct.fields.iter().map(|field| &field.ident);