feat: add dist
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,40 @@
|
||||
|
||||
#![feature(error_generic_member_access, provide_any)]
|
||||
|
||||
use std::any::{Demand, Provider};
|
||||
use std::backtrace::{Backtrace, BacktraceStatus};
|
||||
use std::error::Error;
|
||||
use std::fmt::{self, Display};
|
||||
|
||||
#[derive(Debug)]
|
||||
struct E {
|
||||
backtrace: Backtrace,
|
||||
}
|
||||
|
||||
impl Display for E {
|
||||
fn fmt(&self, _formatter: &mut fmt::Formatter) -> fmt::Result {
|
||||
unimplemented!()
|
||||
}
|
||||
}
|
||||
|
||||
impl Error for E {
|
||||
fn provide<'a>(&'a self, demand: &mut Demand<'a>) {
|
||||
demand.provide_ref(&self.backtrace);
|
||||
}
|
||||
}
|
||||
|
||||
struct P;
|
||||
|
||||
impl Provider for P {
|
||||
fn provide<'a>(&'a self, _demand: &mut Demand<'a>) {}
|
||||
}
|
||||
|
||||
const _: fn() = || {
|
||||
let backtrace: Backtrace = Backtrace::capture();
|
||||
let status: BacktraceStatus = backtrace.status();
|
||||
match status {
|
||||
BacktraceStatus::Captured | BacktraceStatus::Disabled | _ => {}
|
||||
}
|
||||
};
|
||||
|
||||
const _: fn(&dyn Error) -> Option<&Backtrace> = |err| err.request_ref::<Backtrace>();
|
Reference in New Issue
Block a user