pub fn from_error(err: Box<dyn Error + Send + Sync + 'static>) -> Status {
        Status::try_from_error(err).unwrap_or_else(|err| {
            let mut status = Status::new(Code::Unknown, err.to_string());
            status.0.source = Some(err.into());
            status
        })
    }
Create a `Status` from various types of `Error`.

Inspects the error source chain for recognizable errors, including statuses, HTTP2, and
hyper, and attempts to maps them to a `Status`, or else returns an Unknown `Status`.
tonic/src/status.rs