Skip to content

Commit

Permalink
Support non-static AsDynError lifetimes
Browse files Browse the repository at this point in the history
  • Loading branch information
dtolnay committed May 22, 2021
1 parent 51a1ff6 commit 1ed8751
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions src/aserror.rs
@@ -1,33 +1,33 @@
use std::error::Error;

pub trait AsDynError {
fn as_dyn_error(&self) -> &(dyn Error + 'static);
pub trait AsDynError<'a> {
fn as_dyn_error(&self) -> &(dyn Error + 'a);
}

impl<T: Error + 'static> AsDynError for T {
impl<'a, T: Error + 'a> AsDynError<'a> for T {
#[inline]
fn as_dyn_error(&self) -> &(dyn Error + 'static) {
fn as_dyn_error(&self) -> &(dyn Error + 'a) {
self
}
}

impl AsDynError for dyn Error + 'static {
impl<'a> AsDynError<'a> for dyn Error + 'a {
#[inline]
fn as_dyn_error(&self) -> &(dyn Error + 'static) {
fn as_dyn_error(&self) -> &(dyn Error + 'a) {
self
}
}

impl AsDynError for dyn Error + Send + 'static {
impl<'a> AsDynError<'a> for dyn Error + Send + 'a {
#[inline]
fn as_dyn_error(&self) -> &(dyn Error + 'static) {
fn as_dyn_error(&self) -> &(dyn Error + 'a) {
self
}
}

impl AsDynError for dyn Error + Send + Sync + 'static {
impl<'a> AsDynError<'a> for dyn Error + Send + Sync + 'a {
#[inline]
fn as_dyn_error(&self) -> &(dyn Error + 'static) {
fn as_dyn_error(&self) -> &(dyn Error + 'a) {
self
}
}

0 comments on commit 1ed8751

Please sign in to comment.