Skip to content

Commit b3be1e3

Browse files
Mark auto derived functions (#495)
* Add automatically_derived to all impl functions in deku-derive * Motivation: rust-lang/rust#120185
1 parent 59fc760 commit b3be1e3

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

deku-derive/src/macros/deku_read.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ fn emit_struct(input: &DekuData) -> Result<TokenStream, syn::Error> {
163163
};
164164

165165
tokens.extend(quote! {
166+
#[automatically_derived]
166167
impl #imp ::#crate_::DekuReader<#lifetime, #ctx_types> for #ident #wher {
167168
#[inline]
168169
fn from_reader_with_ctx<R: ::#crate_::no_std_io::Read + ::#crate_::no_std_io::Seek>(__deku_reader: &mut ::#crate_::reader::Reader<R>, #ctx_arg) -> core::result::Result<Self, ::#crate_::DekuError> {
@@ -175,6 +176,7 @@ fn emit_struct(input: &DekuData) -> Result<TokenStream, syn::Error> {
175176
let read_body = wrap_default_ctx(read_body, &input.ctx, &input.ctx_default);
176177

177178
tokens.extend(quote! {
179+
#[automatically_derived]
178180
impl #imp ::#crate_::DekuReader<#lifetime> for #ident #wher {
179181
#[inline]
180182
fn from_reader_with_ctx<R: ::#crate_::no_std_io::Read + ::#crate_::no_std_io::Seek>(__deku_reader: &mut ::#crate_::reader::Reader<R>, _: ()) -> core::result::Result<Self, ::#crate_::DekuError> {
@@ -433,6 +435,7 @@ fn emit_enum(input: &DekuData) -> Result<TokenStream, syn::Error> {
433435

434436
tokens.extend(quote! {
435437
#[allow(non_snake_case)]
438+
#[automatically_derived]
436439
impl #imp ::#crate_::DekuReader<#lifetime, #ctx_types> for #ident #wher {
437440
#[inline]
438441
fn from_reader_with_ctx<R: ::#crate_::no_std_io::Read + ::#crate_::no_std_io::Seek>(__deku_reader: &mut ::#crate_::reader::Reader<R>, #ctx_arg) -> core::result::Result<Self, ::#crate_::DekuError> {
@@ -446,6 +449,7 @@ fn emit_enum(input: &DekuData) -> Result<TokenStream, syn::Error> {
446449

447450
tokens.extend(quote! {
448451
#[allow(non_snake_case)]
452+
#[automatically_derived]
449453
impl #imp ::#crate_::DekuReader<#lifetime> for #ident #wher {
450454
#[inline]
451455
fn from_reader_with_ctx<R: ::#crate_::no_std_io::Read + ::#crate_::no_std_io::Seek>(__deku_reader: &mut ::#crate_::reader::Reader<R>, _: ()) -> core::result::Result<Self, ::#crate_::DekuError> {
@@ -470,6 +474,7 @@ fn emit_enum(input: &DekuData) -> Result<TokenStream, syn::Error> {
470474
// would need to be appended to #imp
471475
} else {
472476
tokens.extend(quote! {
477+
#[automatically_derived]
473478
impl<'__deku> #imp ::#crate_::DekuEnumExt<#lifetime, (#deku_id_type)> for #ident #wher {
474479
#[inline]
475480
fn deku_id(&self) -> core::result::Result<(#deku_id_type), ::#crate_::DekuError> {
@@ -973,6 +978,7 @@ pub fn emit_container_read(
973978
) -> TokenStream {
974979
let crate_ = super::get_crate_name();
975980
quote! {
981+
#[automatically_derived]
976982
impl #imp ::#crate_::DekuContainerRead<#lifetime> for #ident #wher {
977983
#[allow(non_snake_case)]
978984
#[inline]
@@ -998,6 +1004,7 @@ pub fn emit_try_from(
9981004
) -> TokenStream {
9991005
let crate_ = super::get_crate_name();
10001006
quote! {
1007+
#[automatically_derived]
10011008
impl #imp core::convert::TryFrom<&#lifetime [u8]> for #ident #wher {
10021009
type Error = ::#crate_::DekuError;
10031010

deku-derive/src/macros/deku_write.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ fn emit_struct(input: &DekuData) -> Result<TokenStream, syn::Error> {
9393
if input.ctx.is_none() || (input.ctx.is_some() && input.ctx_default.is_some()) {
9494
#[cfg(feature = "bits")]
9595
tokens.extend(quote! {
96+
#[automatically_derived]
9697
impl #imp core::convert::TryFrom<#ident> for ::#crate_::bitvec::BitVec<u8, ::#crate_::bitvec::Msb0> #wher {
9798
type Error = ::#crate_::DekuError;
9899

@@ -105,6 +106,7 @@ fn emit_struct(input: &DekuData) -> Result<TokenStream, syn::Error> {
105106
});
106107

107108
tokens.extend(quote! {
109+
#[automatically_derived]
108110
impl #imp core::convert::TryFrom<#ident> for Vec<u8> #wher {
109111
type Error = ::#crate_::DekuError;
110112

@@ -114,6 +116,7 @@ fn emit_struct(input: &DekuData) -> Result<TokenStream, syn::Error> {
114116
}
115117
}
116118

119+
#[automatically_derived]
117120
impl #imp ::#crate_::DekuContainerWrite for #ident #wher {}
118121
});
119122
}
@@ -136,6 +139,7 @@ fn emit_struct(input: &DekuData) -> Result<TokenStream, syn::Error> {
136139
let update_use = check_update_use(&field_updates);
137140

138141
tokens.extend(quote! {
142+
#[automatically_derived]
139143
impl #imp ::#crate_::DekuUpdate for #ident #wher {
140144
#[inline]
141145
fn update(&mut self) -> core::result::Result<(), ::#crate_::DekuError> {
@@ -146,6 +150,7 @@ fn emit_struct(input: &DekuData) -> Result<TokenStream, syn::Error> {
146150
}
147151
}
148152

153+
#[automatically_derived]
149154
impl #imp ::#crate_::DekuWriter<#ctx_types> for #ident #wher {
150155
#[allow(unused_variables)]
151156
#[inline]
@@ -159,6 +164,7 @@ fn emit_struct(input: &DekuData) -> Result<TokenStream, syn::Error> {
159164
let write_body = wrap_default_ctx(write_body, &input.ctx, &input.ctx_default);
160165

161166
tokens.extend(quote! {
167+
#[automatically_derived]
162168
impl #imp ::#crate_::DekuWriter for #ident #wher {
163169
#[allow(unused_variables)]
164170
#[inline]
@@ -300,6 +306,7 @@ fn emit_enum(input: &DekuData) -> Result<TokenStream, syn::Error> {
300306
if input.ctx.is_none() || (input.ctx.is_some() && input.ctx_default.is_some()) {
301307
#[cfg(feature = "bits")]
302308
tokens.extend(quote! {
309+
#[automatically_derived]
303310
impl #imp core::convert::TryFrom<#ident> for ::#crate_::bitvec::BitVec<u8, ::#crate_::bitvec::Msb0> #wher {
304311
type Error = ::#crate_::DekuError;
305312

@@ -312,6 +319,7 @@ fn emit_enum(input: &DekuData) -> Result<TokenStream, syn::Error> {
312319
});
313320

314321
tokens.extend(quote! {
322+
#[automatically_derived]
315323
impl #imp core::convert::TryFrom<#ident> for Vec<u8> #wher {
316324
type Error = ::#crate_::DekuError;
317325

@@ -321,6 +329,7 @@ fn emit_enum(input: &DekuData) -> Result<TokenStream, syn::Error> {
321329
}
322330
}
323331

332+
#[automatically_derived]
324333
impl #imp ::#crate_::DekuContainerWrite for #ident #wher {}
325334
});
326335
}
@@ -341,6 +350,7 @@ fn emit_enum(input: &DekuData) -> Result<TokenStream, syn::Error> {
341350
let update_use = check_update_use(&variant_updates);
342351

343352
tokens.extend(quote! {
353+
#[automatically_derived]
344354
impl #imp ::#crate_::DekuUpdate for #ident #wher {
345355
#[inline]
346356
fn update(&mut self) -> core::result::Result<(), ::#crate_::DekuError> {
@@ -354,6 +364,7 @@ fn emit_enum(input: &DekuData) -> Result<TokenStream, syn::Error> {
354364
}
355365
}
356366

367+
#[automatically_derived]
357368
impl #imp ::#crate_::DekuWriter<#ctx_types> for #ident #wher {
358369
#[allow(unused_variables)]
359370
#[inline]
@@ -367,6 +378,7 @@ fn emit_enum(input: &DekuData) -> Result<TokenStream, syn::Error> {
367378
let write_body = wrap_default_ctx(write_body, &input.ctx, &input.ctx_default);
368379

369380
tokens.extend(quote! {
381+
#[automatically_derived]
370382
impl #imp ::#crate_::DekuWriter for #ident #wher {
371383
#[allow(unused_variables)]
372384
#[inline]

0 commit comments

Comments
 (0)