From 7d02dc1e5648efe636dbc5575c36c38a4db128f6 Mon Sep 17 00:00:00 2001 From: Pierre Chifflier Date: Tue, 24 Sep 2024 11:41:36 +0200 Subject: [PATCH] Fix clippy (nightly) warning: elided lifetime has a name --- src/asn1_types/any.rs | 8 ++++---- src/asn1_types/octetstring.rs | 2 +- src/asn1_types/oid.rs | 4 ++-- src/asn1_types/optional.rs | 8 ++++---- src/asn1_types/sequence.rs | 6 +++--- src/asn1_types/sequence/sequence_of.rs | 2 +- src/asn1_types/sequence/vec.rs | 2 +- src/asn1_types/set.rs | 6 +++--- src/asn1_types/set/set_of.rs | 2 +- src/asn1_types/tagged/explicit.rs | 4 ++-- src/asn1_types/tagged/helpers.rs | 4 ++-- src/header.rs | 4 ++-- src/traits.rs | 8 ++++---- 13 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/asn1_types/any.rs b/src/asn1_types/any.rs index 330b02a..818d6ea 100644 --- a/src/asn1_types/any.rs +++ b/src/asn1_types/any.rs @@ -98,7 +98,7 @@ impl<'a> Any<'a> { op: F, ) -> ParseResult<'a, T, E> where - F: FnOnce(&'a [u8]) -> ParseResult, + F: FnOnce(&'a [u8]) -> ParseResult<'a, T, E>, E: From, { let (rem, any) = Any::from_ber(bytes).map_err(Err::convert)?; @@ -122,7 +122,7 @@ impl<'a> Any<'a> { op: F, ) -> ParseResult<'a, T, E> where - F: FnOnce(&'a [u8]) -> ParseResult, + F: FnOnce(&'a [u8]) -> ParseResult<'a, T, E>, E: From, { let (rem, any) = Any::from_der(bytes).map_err(Err::convert)?; @@ -339,14 +339,14 @@ pub(crate) fn parse_der_any(input: &[u8]) -> ParseResult { impl<'a> FromBer<'a> for Any<'a> { #[inline] - fn from_ber(bytes: &'a [u8]) -> ParseResult { + fn from_ber(bytes: &'a [u8]) -> ParseResult<'a, Self> { trace("Any", parse_ber_any, bytes) } } impl<'a> FromDer<'a> for Any<'a> { #[inline] - fn from_der(bytes: &'a [u8]) -> ParseResult { + fn from_der(bytes: &'a [u8]) -> ParseResult<'a, Self> { trace("Any", parse_der_any, bytes) } } diff --git a/src/asn1_types/octetstring.rs b/src/asn1_types/octetstring.rs index b4b71e5..e844696 100644 --- a/src/asn1_types/octetstring.rs +++ b/src/asn1_types/octetstring.rs @@ -16,7 +16,7 @@ impl<'a> OctetString<'a> { } /// Get the bytes representation of the *content* - pub fn as_cow(&'a self) -> &Cow<'a, [u8]> { + pub fn as_cow(&'a self) -> &'a Cow<'a, [u8]> { &self.data } diff --git a/src/asn1_types/oid.rs b/src/asn1_types/oid.rs index 1b29d9f..89bbe33 100644 --- a/src/asn1_types/oid.rs +++ b/src/asn1_types/oid.rs @@ -116,7 +116,7 @@ fn encode_relative(ids: &'_ [u64]) -> impl Iterator + '_ { impl<'a> Oid<'a> { /// Create an OID from the ASN.1 DER encoded form. See the [module documentation](index.html) /// for other ways to create oids. - pub const fn new(asn1: Cow<'a, [u8]>) -> Oid { + pub const fn new(asn1: Cow<'a, [u8]>) -> Oid<'a> { Oid { asn1, relative: false, @@ -125,7 +125,7 @@ impl<'a> Oid<'a> { /// Create a relative OID from the ASN.1 DER encoded form. See the [module documentation](index.html) /// for other ways to create relative oids. - pub const fn new_relative(asn1: Cow<'a, [u8]>) -> Oid { + pub const fn new_relative(asn1: Cow<'a, [u8]>) -> Oid<'a> { Oid { asn1, relative: true, diff --git a/src/asn1_types/optional.rs b/src/asn1_types/optional.rs index 3386092..2be2ba9 100644 --- a/src/asn1_types/optional.rs +++ b/src/asn1_types/optional.rs @@ -10,7 +10,7 @@ where T: FromBer<'a>, T: Tagged, { - fn from_ber(bytes: &'a [u8]) -> ParseResult { + fn from_ber(bytes: &'a [u8]) -> ParseResult<'a, Self> { if bytes.is_empty() { return Ok((bytes, None)); } @@ -28,7 +28,7 @@ where } impl<'a> FromBer<'a> for Option> { - fn from_ber(bytes: &'a [u8]) -> ParseResult { + fn from_ber(bytes: &'a [u8]) -> ParseResult<'a, Self> { if bytes.is_empty() { return Ok((bytes, None)); } @@ -44,7 +44,7 @@ where T: FromDer<'a>, T: Tagged, { - fn from_der(bytes: &'a [u8]) -> ParseResult { + fn from_der(bytes: &'a [u8]) -> ParseResult<'a, Self> { if bytes.is_empty() { return Ok((bytes, None)); } @@ -62,7 +62,7 @@ where } impl<'a> FromDer<'a> for Option> { - fn from_der(bytes: &'a [u8]) -> ParseResult { + fn from_der(bytes: &'a [u8]) -> ParseResult<'a, Self> { if bytes.is_empty() { return Ok((bytes, None)); } diff --git a/src/asn1_types/sequence.rs b/src/asn1_types/sequence.rs index ebacf41..367cf25 100644 --- a/src/asn1_types/sequence.rs +++ b/src/asn1_types/sequence.rs @@ -98,7 +98,7 @@ impl<'a> Sequence<'a> { /// in one step, ensuring there are only references (and dropping the temporary sequence). pub fn and_then(self, op: F) -> ParseResult<'a, U, E> where - F: FnOnce(Cow<'a, [u8]>) -> ParseResult, + F: FnOnce(Cow<'a, [u8]>) -> ParseResult<'a, U, E>, { op(self.content) } @@ -106,7 +106,7 @@ impl<'a> Sequence<'a> { /// Same as [`Sequence::from_der_and_then`], but using BER encoding (no constraints). pub fn from_ber_and_then(bytes: &'a [u8], op: F) -> ParseResult<'a, U, E> where - F: FnOnce(&'a [u8]) -> ParseResult, + F: FnOnce(&'a [u8]) -> ParseResult<'a, U, E>, E: From, { let (rem, seq) = Sequence::from_ber(bytes).map_err(Err::convert)?; @@ -142,7 +142,7 @@ impl<'a> Sequence<'a> { /// ``` pub fn from_der_and_then(bytes: &'a [u8], op: F) -> ParseResult<'a, U, E> where - F: FnOnce(&'a [u8]) -> ParseResult, + F: FnOnce(&'a [u8]) -> ParseResult<'a, U, E>, E: From, { let (rem, seq) = Sequence::from_der(bytes).map_err(Err::convert)?; diff --git a/src/asn1_types/sequence/sequence_of.rs b/src/asn1_types/sequence/sequence_of.rs index d0e5afa..efe0535 100644 --- a/src/asn1_types/sequence/sequence_of.rs +++ b/src/asn1_types/sequence/sequence_of.rs @@ -134,7 +134,7 @@ where T: FromDer<'a, E>, E: From + Display + Debug, { - fn from_der(bytes: &'a [u8]) -> ParseResult { + fn from_der(bytes: &'a [u8]) -> ParseResult<'a, Self, E> { trace_generic( core::any::type_name::(), "SequenceOf::from_der", diff --git a/src/asn1_types/sequence/vec.rs b/src/asn1_types/sequence/vec.rs index b31753e..204a297 100644 --- a/src/asn1_types/sequence/vec.rs +++ b/src/asn1_types/sequence/vec.rs @@ -112,7 +112,7 @@ where T: FromDer<'a, E>, E: From + Debug, { - fn from_der(bytes: &'a [u8]) -> ParseResult { + fn from_der(bytes: &'a [u8]) -> ParseResult<'a, Self, E> { trace_generic( core::any::type_name::(), "Sequence::from_der", diff --git a/src/asn1_types/set.rs b/src/asn1_types/set.rs index 06503c0..81150cd 100644 --- a/src/asn1_types/set.rs +++ b/src/asn1_types/set.rs @@ -99,7 +99,7 @@ impl<'a> Set<'a> { /// in one step, ensuring there are only references (and dropping the temporary set). pub fn and_then(self, op: F) -> ParseResult<'a, U, E> where - F: FnOnce(Cow<'a, [u8]>) -> ParseResult, + F: FnOnce(Cow<'a, [u8]>) -> ParseResult<'a, U, E>, { op(self.content) } @@ -107,7 +107,7 @@ impl<'a> Set<'a> { /// Same as [`Set::from_der_and_then`], but using BER encoding (no constraints). pub fn from_ber_and_then(bytes: &'a [u8], op: F) -> ParseResult<'a, U, E> where - F: FnOnce(&'a [u8]) -> ParseResult, + F: FnOnce(&'a [u8]) -> ParseResult<'a, U, E>, E: From, { let (rem, seq) = Set::from_ber(bytes).map_err(Err::convert)?; @@ -143,7 +143,7 @@ impl<'a> Set<'a> { /// ``` pub fn from_der_and_then(bytes: &'a [u8], op: F) -> ParseResult<'a, U, E> where - F: FnOnce(&'a [u8]) -> ParseResult, + F: FnOnce(&'a [u8]) -> ParseResult<'a, U, E>, E: From, { let (rem, seq) = Set::from_der(bytes).map_err(Err::convert)?; diff --git a/src/asn1_types/set/set_of.rs b/src/asn1_types/set/set_of.rs index c2846ff..f88a5a3 100644 --- a/src/asn1_types/set/set_of.rs +++ b/src/asn1_types/set/set_of.rs @@ -134,7 +134,7 @@ where T: FromDer<'a, E>, E: From + Display + Debug, { - fn from_der(bytes: &'a [u8]) -> ParseResult { + fn from_der(bytes: &'a [u8]) -> ParseResult<'a, Self, E> { trace_generic( core::any::type_name::(), "SetOf::from_der", diff --git a/src/asn1_types/tagged/explicit.rs b/src/asn1_types/tagged/explicit.rs index 7fdbcce..883908d 100644 --- a/src/asn1_types/tagged/explicit.rs +++ b/src/asn1_types/tagged/explicit.rs @@ -156,7 +156,7 @@ impl<'a, T, E> TaggedParser<'a, Explicit, T, E> { op: F, ) -> ParseResult<'a, T, E> where - F: FnOnce(&'a [u8]) -> ParseResult, + F: FnOnce(&'a [u8]) -> ParseResult<'a, T, E>, E: From, { Any::from_ber_and_then(class, tag, bytes, op) @@ -176,7 +176,7 @@ impl<'a, T, E> TaggedParser<'a, Explicit, T, E> { op: F, ) -> ParseResult<'a, T, E> where - F: FnOnce(&'a [u8]) -> ParseResult, + F: FnOnce(&'a [u8]) -> ParseResult<'a, T, E>, E: From, { Any::from_der_and_then(class, tag, bytes, op) diff --git a/src/asn1_types/tagged/helpers.rs b/src/asn1_types/tagged/helpers.rs index 5025785..cbb7534 100644 --- a/src/asn1_types/tagged/helpers.rs +++ b/src/asn1_types/tagged/helpers.rs @@ -7,7 +7,7 @@ use nom::{Err, IResult}; pub fn parse_der_tagged_explicit<'a, IntoTag, T, E>( tag: IntoTag, -) -> impl FnMut(&'a [u8]) -> ParseResult, E> +) -> impl FnMut(&'a [u8]) -> ParseResult<'a, TaggedParser<'a, Explicit, T, E>, E> where IntoTag: Into, TaggedParser<'a, Explicit, T, E>: FromDer<'a, E>, @@ -41,7 +41,7 @@ where pub fn parse_der_tagged_implicit<'a, IntoTag, T, E>( tag: IntoTag, -) -> impl FnMut(&'a [u8]) -> ParseResult, E> +) -> impl FnMut(&'a [u8]) -> ParseResult<'a, TaggedParser<'a, Implicit, T, E>, E> where IntoTag: Into, // T: TryFrom, Error = Error> + Tagged, diff --git a/src/header.rs b/src/header.rs index 3975802..8a66bc5 100644 --- a/src/header.rs +++ b/src/header.rs @@ -225,7 +225,7 @@ impl<'a> ToStatic for Header<'a> { } impl<'a> FromBer<'a> for Header<'a> { - fn from_ber(bytes: &'a [u8]) -> ParseResult { + fn from_ber(bytes: &'a [u8]) -> ParseResult<'a, Self> { let (i1, el) = parse_identifier(bytes)?; let class = match Class::try_from(el.0) { Ok(c) => c, @@ -270,7 +270,7 @@ impl<'a> FromBer<'a> for Header<'a> { } impl<'a> FromDer<'a> for Header<'a> { - fn from_der(bytes: &'a [u8]) -> ParseResult { + fn from_der(bytes: &'a [u8]) -> ParseResult<'a, Self> { let (i1, el) = parse_identifier(bytes)?; let class = match Class::try_from(el.0) { Ok(c) => c, diff --git a/src/traits.rs b/src/traits.rs index 87bc211..1f8a3da 100644 --- a/src/traits.rs +++ b/src/traits.rs @@ -85,7 +85,7 @@ where /// ``` pub trait FromBer<'a, E = Error>: Sized { /// Attempt to parse input bytes into a BER object - fn from_ber(bytes: &'a [u8]) -> ParseResult; + fn from_ber(bytes: &'a [u8]) -> ParseResult<'a, Self, E>; } impl<'a, T, E> FromBer<'a, E> for T @@ -93,7 +93,7 @@ where T: TryFrom, Error = E>, E: From, { - fn from_ber(bytes: &'a [u8]) -> ParseResult { + fn from_ber(bytes: &'a [u8]) -> ParseResult<'a, T, E> { let (i, any) = Any::from_ber(bytes).map_err(nom::Err::convert)?; let result = any.try_into().map_err(nom::Err::Error)?; Ok((i, result)) @@ -154,7 +154,7 @@ where /// ``` pub trait FromDer<'a, E = Error>: Sized { /// Attempt to parse input bytes into a DER object (enforcing constraints) - fn from_der(bytes: &'a [u8]) -> ParseResult; + fn from_der(bytes: &'a [u8]) -> ParseResult<'a, Self, E>; } /// Trait to automatically derive `FromDer` @@ -182,7 +182,7 @@ where T: DerAutoDerive, E: From + Display + Debug, { - fn from_der(bytes: &'a [u8]) -> ParseResult { + fn from_der(bytes: &'a [u8]) -> ParseResult<'a, T, E> { trace_generic( core::any::type_name::(), "T::from_der",