pub trait PrintProgramError {
    fn print<E>(&self)
    where
        E: 'static + Error + DecodeError<E> + PrintProgramError + FromPrimitive;
}pub trait PrintProgramError {
    fn print<E>(&self)
    where
        E: 'static + Error + DecodeError<E> + PrintProgramError + FromPrimitive;
}