diff --git a/der/derive/src/sequence.rs b/der/derive/src/sequence.rs index 307634917..8cbebc036 100644 --- a/der/derive/src/sequence.rs +++ b/der/derive/src/sequence.rs @@ -84,9 +84,13 @@ impl DeriveSequence { } quote! { - impl<#lt_params> ::der::Decodable<#lifetime> for #ident<#lt_params> { - fn decode(decoder: &mut ::der::Decoder<#lifetime>) -> ::der::Result { - decoder.sequence(|decoder| { + impl<#lt_params> ::der::DecodeValue<#lifetime> for #ident<#lt_params> { + fn decode_value( + decoder: &mut ::der::Decoder<#lifetime>, + length: ::der::Length, + ) -> ::der::Result { + use ::der::DecodeValue; + ::der::asn1::SequenceRef::decode_value(decoder, length)?.decode_body(|decoder| { #(#decode_body)* Ok(Self {